簡體   English   中英

C ++逗號分隔的Txt文件

[英]C++ Comma Delimited Txt File

我正在使用簡單的系統在C ++中使用.txt文件作為數據庫。 就我而言,我的代碼正在運行,但是輸出重復太多。.我的系統顯示名稱列表是文本文件(逗號第二行)。

這是我的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;
}

誰能幫助我? 謝謝!

刪除這個

for (int i = 0; i < v.size( ); ++i) {
  cout << v[1] << '\n';

}

並用它代替

if(v.size()>0){
    cout << v[1] << '\n';
}
else{
    break;
}

或者更好

cout << v[1] << endl;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM