【问题标题】:Get number of lines of a file via for loop [duplicate]通过for循环获取文件的行数[重复]
【发布时间】:2019-03-14 21:01:32
【问题描述】:

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

我想计算输入文件的行数

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++) {};

【问题讨论】:

  • 编译器对你大喊nb_lines;,而不是nb_lines++;
  • 是的,我可以删除它,谢谢
  • "---> 只使用 for (; getline(MyList,line); nb_lines++) {};"如果这应该是一个答案,你应该把它作为答案发布,但你不应该把它包含在问题中,如果不是,我不明白这个问题是关于什么的
  • sayanel,如果文件只有 3 个字节 "abc" 没有尾随 '\n',你会算作 s 1 行文件还是 0 行文件?

标签: c++ ifstream getline


【解决方案1】:
void foo(ifstream &MyList) {
    int nb_lines = 0;
    string line;
    for (; getline(MyList,line); nb_lines++);
    // alternatively
    while( getline(MyList,line) )
        ++nb_lines;
}

正常情况下就够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多