计算空格分隔文件的列

时间:2011-09-02 11:58:43

标签: c++ count stdin

我的问题涉及使用std::count(或其他适当的函数)来计算空格分隔文件的列。

我目前使用的是这样的东西:

  std::ifstream inFile("file"); 
  int lines = std::count(std::istreambuf_iterator<char>(inFile), 
             std::istreambuf_iterator<char>(), '\n');

计算行数。

由于所有行都相同(数据量相同),所以

  std::ifstream inFile("file"); 
  int columns = std::count(std::istreambuf_iterator<char>(inFile), 
             std::istreambuf_iterator<char>('\n'), ' ') + 1;

做我需要的吗?

由于

编辑:

我的意思是,如果在"file"中有1 21 [many spaces here] 2等数据,那么columns的值是否为2?

1 个答案:

答案 0 :(得分:0)

不,你会计算空格而不是列数。你需要标记你的行,例如boost::tokenizer