c ++使用class来计算文件中的行数

时间:2013-12-23 07:36:33

标签: c++ class

我正在尝试将我的行计数功能转移到一个类中,但是,我遇到了一些错误,而且我不知道如何让它工作。

    class lines {
        string name;
        int number_of_lines;
        string line;
    public:
        void set_value (string n);
        ifstream myfile(name);   //C2061: syntax error : identifier 'name'
        while (getline(myfile, line))  //Multiple markers at this line - C2059: syntax error : 'while', - Syntax error
        {                         // C2334: unexpected token(s) preceding '{'; skipping apparent function body
            ++number_of_lines;
        }
        int row() {return number_of_lines;}
    };

 void lines::set_value (string n) {
 number_of_lines=0;
     name = n;
 }

我将错误作为评论添加到他们显示的行中。

2 个答案:

答案 0 :(得分:1)

更改代码

        string line;
public:
        void set_value (string n);
        ifstream myfile(name);   //C2061: syntax error : identifier 'name'
        while (getline(myfile, line))  //Multiple markers at this line - C2059: syntax error : 'while', - Syntax error
        {                         // C2334: unexpected token(s) preceding '{'; skipping apparent function body
            ++number_of_lines;
        }

到:

public:
    void set_value (string name)
    {
        ifstream myfile(name);
        string line;
        while (getline(myfile, line)) 
        {               
            ++number_of_lines;
        }
        myfile.close();
    }

答案 1 :(得分:0)

无论你在C ++中做什么操作/计算都必须在某个函数中,这里你在类中使用必须在某个函数内的下面语句。

ifstream myfile(name);   //C2061: syntax error : identifier 'name'
        while (getline(myfile, line))  //Multiple markers at this line - C2059: syntax error : 'while', - Syntax error
        {                         // C2334: unexpected token(s) preceding '{'; skipping apparent function body
            ++number_of_lines;
        }