c ++读取文件并提取字符串

时间:2015-06-22 04:44:53

标签: c++

我有一个名为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 ++中实现呢?

2 个答案:

答案 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