CSV文件我有每行的以下信息csv文件:如何閱讀與C++
John,Doe,17
的ifstream的對象名稱是INFILE,我嘗試:
string firstName;
string lastName;
int age;
inFile >> firstName >> "," >> lastName >> "," >> age
然而,清楚,我做不到>> "," >>
如何正確獲取這些值並使用它們?
謝謝。
CSV文件我有每行的以下信息csv文件:如何閱讀與C++
John,Doe,17
的ifstream的對象名稱是INFILE,我嘗試:
string firstName;
string lastName;
int age;
inFile >> firstName >> "," >> lastName >> "," >> age
然而,清楚,我做不到>> "," >>
如何正確獲取這些值並使用它們?
謝謝。
您需要使用stringstream並使用逗號作爲分隔符將每行讀入流中。 參見:this question and its answer
你可以這樣做。
string firstName;
string lastName;
int age;
getline(inFile, firstName, ',');
getline(inFile, lastName, ',');
inFile >> age;
如果你想保持一致,你可以使用函數getline(INFILE,..., '')的所有數據,然後使用std :: Stoi旅館年齡轉換爲整數。或者你可以使用getline(inFile,wholeline),然後在整行上使用sscanf。
string tempVariable; getline(inFile,tempVariable); string firstName; string lastName; char逗號; 浮動年齡; while(inFile >> firstName >> comma >> lastName >> comma >> age { 你知道爲什麼它永遠不會進入這個循環嗎?我用getline()跳過第一行 –
'inFile >> firstName >> dummy >> lastName >> dummy >> age;' - 這不起作用 - ''std :: string'消耗輸入直到下一個空白字符或流結束,所以''「 John,Doe,17「'in'firstName'。 –
@ D.Lin啊我沒有注意到你在逗號前沒有空格。 –
事情是我的第一行是頭,如「第一,最後,年齡」,我怎麼會考慮到不讀那行? –
跳過第一行怎麼樣? –
我在回答問題時猶豫不決,因爲我覺得這對於試驗和解決手頭問題更有好處,提供了一些指導,而不是提供關於如何操作的逐步指導。就這一點而言,關於跳過一條線,當你閱讀它時(線索),你不必對線做任何事情。 –