Я попытался сделать программу ранее, которая сообщает пользователю, а затем количество символов, слов и строк в текстовом файле. Я делал функции для определения номеров каждого, но я передавал их по значению. Это привело к ошибке, так как после прочтения числа символов он будет в конце файла, а затем выводит ноль для двух других. Теперь я не могу переписать свои функции так, чтобы файл был открыт и закрыт каждый раз, когда он проверяется на символ, слова и строки. Кто-нибудь видит, где мои ошибки? Благодаря! (просто скопировали и вставляли одну из моих функций на данный момент).Фиксация синтаксиса числа функций чтения строк
int num_of_lines(ifstream file)
{
string myfile;
myfile = argv[1];
ifstream l;
l.open(myfile);
int cnt3 = 0;
string str;
while(getline(file, str))cnt3++;
l.close();
return(cnt3);
}
int main(int argc, char **argv)
{
int num_of_char(ifstream file);
string file;
file = argv[1];
if(argc == 1)die("usage: mywc your_file");
ifstream ifs;
ifs.open(file);
if(ifs.is_open())
{
int a, b, c;
a = num_of_lines(ifs);
cout <<"Lines: " << a << endl;
}
else
{
cerr <<"Could not open: " << file << endl;
exit(1);
}
ifs.close();
return(0);
}
Вы не должны писать три функции для этого. Напишите одну функцию, которая читает символ за раз, подсчитывает каждую прочитанную и классифицирует символы, чтобы определить, является ли это «словом» - при каждом переходе от «в слове» к «не в слове» подсчитывать количество слов, и если это новая строка, подсчитайте количество строк. –