0

strtok()がスペースを区切り文字として解釈しないようにする方法はありますか?.csvファイルから読み取っていますが、コードには次のものがあります。

ifstream inf("file.csv");
char *n, *a, *b;
char n1[80], a1[80], b1[80], temp[80];
inf >> temp;
n = strtok(temp, ",");
strcpy(n1, n);
a = strtok(NULL, ",");
strcpy(a1, a);
b = strtok(NULL, ",");
strcpy(b1, b);
cout << a1 << " " << b1 << endl;

ファイルの内容:

123,San Francisco, Los Angeles

strtokはスペースを'\n'として解釈すると思いますが、それを無視する方法がわかりません。inf.ignore('')を入れてみましたが、機能せず、ランダムな値が表示されます。ただし、ファイルを123、San_Francisco、Los_Angelesに変更すると、プログラムは機能します。どうすればスペースを無視できますか?

4

1 に答える 1

2

空白文字を見つけるときに抽出を停止することを非難strtokしないでください。行全体を読みたい場合は、バリアントの1つを使用する必要があります。ifstreamgetline()

于 2012-06-03T23:47:39.530 に答える