我被要求制定计划来计算不。文件中的行和单词,这是我的试用版,我的老师说我不能使用>>运算符用于计算单词和比较但我无法处理它。
#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 ();
}
答案 0 :(得分:1)
您可以做的是向getline()
添加第三个参数。这使它可以从流中提取数据,直到它遇到一个字符。执行getline(cin, line, ' ')
会将所有数据记录到下一个并将其放入
line
。您的代码可能如下所示:
while(getline(inFile, line))
{
++numlines;
stringstream lineStream(line);
while(getline(lineStream, line, ' '))
{
++numWords;
}
}
外部循环遍历文件并将每一行存储到line
,然后内部遍历该行并计算每个空间。这与一个词有关。