我无法理解如何读取文本文件的行,然后将每行分成整数和字符串。这是我的read.txt的样子:
ID Name
1234 name1
ID Name
5678 name2
9101 name3
ID Name
1121 name4
3141 name5
我通过检查该字符串的每一行来跳过标题“ID Name”。
编辑(我将代码更改为此代码并且值似乎已存储)。
ofstream write2 ("write2.txt");
ifstream infile ("read.txt");
string header = "ID Name";
string strVal;
string str;
int intVal;
vector <int> ID;
vector <string> NAME;
if ( infile.is_open() )
{
while ( !infile.eof() )
{
getline(infile, str);
istringstream ssin(str);
ssin >> intVal >> strVal;
ID.push_back(intVal);
NAME.push_back(strVal);
}
}
for ( int i = 0; i < (int)ID.size(); i++ )
cout << endl << NAME[i] << "\t" << ID[i] << endl;
这些值现在存储在我的向量中,但我不完全理解为什么stringstream以它的方式工作。