比方說,我有名字,如一個文件:閱讀與引號和逗號的字符串的文件到字符串數組
"erica","bosley","bob","david","janice"
也就是說,引號每個名稱,用逗號沒有空格分隔每個名稱在之間。
我想讀取這些字符串數組,但似乎無法找到忽略/ get/getline /任何組合工作。我想這是一個常見的問題,但我試圖在文件I/O方面做得更好,並且還不知道多少。下面是隻是在整個文件中讀取作爲一個字符串(不是我想要的,顯然)基本版本:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
fstream iFile("names.txt", ios::in);
string names[5];
int index = 0;
while(iFile)
{
iFile >> names[index];
index++;
}
for(int i = 0; i < 5; i++)
{
cout << "names[" << i << "]: " << names[i] << endl;
}
輸出:
names[0]: "erica","bosley","bob","david","janice"
names[1]:
names[2]:
names[3]:
names[4]:
而且,我明白了爲什麼這一切又讀爲單個字符串,但爲什麼剩餘的元素沒有填充垃圾?
要清楚,我希望輸出的樣子:
names[0]: erica
names[1]: bosley
names[2]: bob
names[3]: david
names[4]: janice
'的std :: string'初始化的時候它沒有其他初始化一個空字符串。 –
如果是我,我會將輸入放到一行中,然後編寫一個涉及'find_first_of'的循環來手動將行分開。但也許我是老學校? –
引用的字符串可以逗號嗎?所引用的字符串是否有引號(通過某種轉義)? – RichardPlunkett