使用c ++

时间:2018-03-28 00:19:00

标签: c++

我被要求制定计划来计算不。文件中的行和单词,这是我的试用版,我的老师说我不能使用>>运算符用于计算单词和比较但我无法处理它。

    #include <iostream>
    #include <fstream>
    using namespace std;

    int numberLines = 0;
    int numberWords = 0;

    void numberOfLines(){

    cout<<"number of lines is " << numberLines << endl;
    }
    void numberWords(){
    cout << "number of words is " << numberWords <<endl;
    }

    int main(){
    string line;
    char a = '';
    ifstream myfile("files.txt");

    if(myfile.is_open()){
    while(!myfile.eof()){
        getline(myfile,line);
        cout<< line << endl;
        numberLines++;
    }

    if ( a == ' '){
        NumberWords++;
    }

    }
    myfile.close();
    }
   numberOfLines();
   numberOfWords ();

   }

1 个答案:

答案 0 :(得分:1)

您可以做的是向getline()添加第三个参数。这使它可以从流中提取数据,直到它遇到一个字符。执行getline(cin, line, ' ')会将所有数据记录到下一个并将其放入line。您的代码可能如下所示:

while(getline(inFile, line))
{
    ++numlines;
    stringstream lineStream(line);
    while(getline(lineStream, line, ' '))
    {
        ++numWords;
    }
}

外部循环遍历文件并将每一行存储到line,然后内部遍历该行并计算每个空间。这与一个词有关。