New*_*ile 6 c++ size numbers get line
是否有可用于获取总文件行号的函数C++,还是必须通过for循环手动完成?
#include <iostream>
#include <ifstream>
ifstream aFile ("text.txt");
if (aFile.good()) {
//how do i get total file line number?
}
Run Code Online (Sandbox Code Playgroud)
的text.txt
line1
line2
line3
Run Code Online (Sandbox Code Playgroud)
P0W*_*P0W 12
我这样做:
ifstream aFile ("text.txt");
std::size_t lines_count =0;
std::string line;
while (std::getline(aFile , line))
++lines_count;
Run Code Online (Sandbox Code Playgroud)
或简单地说,
#include<algorithm>
#include<iterator>
//...
lines_count=std::count(std::istreambuf_iterator<char>(aFile),
std::istreambuf_iterator<char>(), '\n');
Run Code Online (Sandbox Code Playgroud)
Ola*_*che 10
没有这样的功能.可以通过读取整行来完成计数
std::ifstream f("text.txt");
std::string line;
long i;
for (i = 0; std::getline(f, line); ++i)
;
Run Code Online (Sandbox Code Playgroud)
关于范围,变量的注释i必须在外面for,如果要在循环后访问它.
您也可以阅读字符并检查换行符
std::ifstream f("text.txt");
char c;
long i = 0;
while (f.get(c))
if (c == '\n')
++i;
Run Code Online (Sandbox Code Playgroud)