计算空格分隔文件的列数

发布于 2024-12-02 13:06:55 字数 692 浏览 2 评论 0原文

我的问题涉及使用 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 [这里有很多空格] 2 这样的数据,那么该值 到底是 2 还是不是?

My question concerns the use of std::count (or another appropriate function) to count the columns of a space separated file.

I currently use something like this:

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

to count the lines.

Since all the lines are equal (same amount of data), would something like

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

do what I need?

Thanks

EDIT:

I mean, if in "file" there is data like 1 2 or 1 [many spaces here] 2, would the value of columns anyway be 2 or not?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

儭儭莪哋寶赑 2024-12-09 13:06:55

不,您将计算空格,而不是列。您需要标记您的行,例如通过 boost::tokenizer

No, you'll count spaces, not columns. You need to tokenize your line, e.g. by boost::tokenizer

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文