我有一个名为fruit.txt的文件,就像这样
apple 2 in place A
banana 3 in place B
peach 4 in place C
what is the total?
然后我想用c ++逐行读取这个文件,但我只想要水果名称和编号,并省略其他信息。例如,第一行,我想读“apple”并写入string name[i]
并阅读2并写入int num[i]
并省略“就地A”。保持这个过程直到结束,但也省略了最后一行“总数是多少”。
允许使用以下标头:<iostream>, <fstream>, <sstream>, <iomanip>, <string>, <cstdlib>.
那么如何在C ++中实现呢?
答案 0 :(得分:0)
你可以使用std :: getline将每一行存储到一个字符串中。 对于每一行,创建一个从该行读取的字符串流。 使用&gt;&gt;操作员两次获得前两个令牌&#39;这是字符串和数字(&gt;&gt;读取直到空格) 如果您需要学习如何使用stringstream和getline
,请阅读C ++文档和旧堆栈溢出问题答案 1 :(得分:0)
以下是扩展@ js-sol回答
的代码段 std::string line;
while (std::getline(infile, line)) {
std::istringstream ss(line);
std::string name;
int num;
ss >> name >> num;
// do something with name and num
}
编辑: 我想,您的问题与此类似:Read file line by line