我想在C中做一个简单的初学者的任务 . 我有一个包含“John Smith 31”行的文本文件 . 而已 . 我想使用ifstream变量读取此数据 . 但是我想把名字“John Smith”读成一个字符串变量,然后将数字“31”读成一个单独的int变量 .
我尝试使用getline函数,如下所示:
ifstream inFile;
string name;
int age;
inFile.open("file.txt");
getline(inFile, name);
inFile >> age;
cout << name << endl;
cout << age << endl;
inFile.close();
这个问题是它输出整行“John Smith 31” . 是否有一种方法可以告诉getline函数在获得名称之后停止然后再“重启”以检索数字?没有操作输入文件,那是什么?
3 回答
getline,因为它命名状态,读取整行,或至少直到可以指定的分隔符 .
所以答案是"no",
getline
与您的需求不符 .但你可以这样做:
你应该这样做:
这将为您提供名称"joht"然后获取下一个令牌,
temp将获得"smith" . 那么你应该使用字符串连接在名称的末尾附加temp . 如:
(您也可以先添加空间,以获得其间的空间) .