C++;逗号分隔的Txt文件 我正在使用我的简单系统使用C++中的.txt文件作为数据库。在我的例子中,我的代码正在工作,但输出是有太多的重复。。我的系统显示的名称列表是文本文件(逗号中的第二行)

C++;逗号分隔的Txt文件 我正在使用我的简单系统使用C++中的.txt文件作为数据库。在我的例子中,我的代码正在工作,但输出是有太多的重复。。我的系统显示的名称列表是文本文件(逗号中的第二行),c++,C++,这是我的txt文件的示例: 2015-1111,Christian Karl,M 2015-1112,Joshua Evans,M 2015-1115,Jean Chloe,F 2015-1113,Shairene Traxe,F 2015-1114,Paul Howard,M 我的欲望输出: Christian Karl Joshua Evans Jean Chloe Shairene Traxe Paul Howard 问题是。。它有很多重复。。 我的当前输出: Christian Ka

这是我的txt文件的示例:

2015-1111,Christian Karl,M
2015-1112,Joshua Evans,M
2015-1115,Jean Chloe,F
2015-1113,Shairene Traxe,F
2015-1114,Paul Howard,M
我的欲望输出:

Christian Karl
Joshua Evans
Jean Chloe
Shairene Traxe
Paul Howard
问题是。。它有很多重复。。 我的当前输出:

Christian Karl
Christian Karl
Christian Karl
Joshua Evans
Joshua Evans
Joshua Evans
Jean Chloe
Jean Chloe
Jean Chloe
Shairene Traxe
Shairene Traxe
Shairene Traxe
Paul Howard
Paul Howard
Paul Howard
我试着调试我的代码很多次,但似乎什么都没有发生

#include <string>
#include <vector>
#include <functional>
#include <iostream>
#include <fstream>
using namespace std;
void split(const string& s, char c,
           vector<string>& v) {
   string::size_type i = 0;
   string::size_type j = s.find(c);
   while (j != string::npos) {
      v.push_back(s.substr(i, j-i));
      i = ++j;
      j = s.find(c, j);
      if (j == string::npos)
         v.push_back(s.substr(i, s.length( )));
   }
}
int main( ) {
  ifstream in("db.txt");

  char str[255];
  while(in) {
    in.getline(str, 255);  // delim defaults to '\n'

   vector<string> v;
   split(str, ',', v);
   for (int i = 0; i < v.size( ); ++i) {
      cout << v[1] << '\n';
   }

  }

   system("pause");
   return 0;
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
无效拆分(常量字符串和字符串、字符c、,
向量机(v&v){
字符串::大小\类型i=0;
字符串::size_type j=s.find(c);
while(j!=string::npos){
v、 向后推(s.substr(i,j-i));
i=++j;
j=s.find(c,j);
if(j==string::npos)
v、 向后推(s.substr(i,s.length());
}
}
int main(){
ifstream in(“db.txt”);
char-str[255];
当{
in.getline(str,255);//delim默认为'\n'
向量v;
分裂(str,,,v);
对于(int i=0;i
for (int i = 0; i < v.size( ); ++i) {
  cout << v[1] << '\n';
for(inti=0;i
for (int i = 0; i < v.size( ); ++i) {
  cout << v[1] << '\n';
for(inti=0;i非常感谢,收到了!但是说了一个错误“表达式:向量下标超出范围”。这是因为在打印行之前您没有检查文件的结尾。非常感谢!您是救世主!谢谢,收到了!但是说了一个错误“表达式:向量下标超出范围。”这是因为在打印行之前,您没有检查文件的结尾。非常感谢!您是救世主!
cout << v[1] << endl;