c++ - 通过for循环获取文件的行数

标签 c++ ifstream getline

<分区>

我有一个我读过的文件,我想从计算行数开始,所以我做了

我想计算输入文件中的行数

void foo(ifstream &MyList) 
{
    int nb_lines = 0;
    string line;
    for (nb_lines; getline(MyList,line); nb_lines++) {};
    [...]
}

我猜这不是正确的方法,但它确实有效。 我应该怎么做?

此外,编译器告诉我statement has no effect,这是错误的(nb_lines 的值已更改)。我能让他明白吗? ---> 只需使用 for (; getline(MyList,line); nb_lines++) {};

最佳答案

void foo(ifstream &MyList) {
    int nb_lines = 0;
    string line;
    for (; getline(MyList,line); nb_lines++);
    // alternatively
    while( getline(MyList,line) )
        ++nb_lines;
}

正常情况下就够了。

关于c++ - 通过for循环获取文件的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55171955/

相关文章:

c++ - getline 只取一部分信息

c++ - 对象可以作为函数的参数吗?

c++ - 如何在编译时判断两个变量是否具有相同的类型?

python - 使用 python 扩展时链接到其他库(例如 boost)

c++ - 适用于 Microsoft : Couldn't find a match for 'ifstream::open' 的 Borland 错误

c++ - 无法从文件中读取一行的所有整数(ifstream)

c++ - 无法理解这个 C++ 程序的返回值

c++ - C++ 字符串类如何将一个变量转换为另一个变量?

c - 替换已弃用的 gets()

c++ - 使用 3x3 矩阵和平移 vector 围绕一个点旋转