Следующий код должен рассчитывать: строки, символы и слова, считанные из текстового файла.Подсчет строк из ввода файла?
Входной текстовый файл:
This is a line.
This is another one.
Нужный выход:
Words: 8
Chars: 36
Lines: 2
Однако количество слов выходит на 0, и если я изменить его, то линии и персонажи выходят на 0 и число слов правильное. Я получаю это:
Words: 0
Chars: 36
Lines: 2
Это мой код:
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
ifstream inFile;
string fileName;
cout << "Please enter the file name " << endl;
getline(cin,fileName);
inFile.open(fileName.c_str());
string line;
string chars;
int number_of_lines = 0;
int number_of_chars = 0;
while(getline(inFile, line))
{
number_of_lines++;
number_of_chars += line.length();
}
string words;
int number_of_words = 0;
while (inFile >> words)
{
number_of_words++;
}
cout << "Words: " << number_of_words <<"" << endl;
cout << "Chars: " << number_of_chars <<"" << endl;
cout << "Lines: " << number_of_lines <<"" << endl;
return 0;
}
Любое руководство будет высоко оценен.
'while (getline (inFile, line))' съел весь файл. Перематывайте или закрывайте и снова открывайте перед 'while (inFile >> words)' – user4581301
Вам нужно будет либо 1. закрыть, либо снова открыть файл 2. использовать 'stringstream', чтобы узнать, сколько слов в каждой строке. – crashmstr
Использование 'stringstream' для получения слов в строке, вероятно, более полезно в долгосрочной перспективе. – crashmstr