Моя цель состоит в том, чтобы читать из входного файла и подсчитывать количество строк, имеющих по крайней мере 1 строчную букву и 1 цифру. Я уже решил остальную часть моего кода, которая не учитывала все строчные, прописные, цифры, символы и слова. Я также прочитал из входного файла и перепутал строки слово за словом. Я не могу понять, почему код подсчитывает 8 строк, когда есть только 7 с 1 строчными буквами и 1 цифрой. При использовании getline() для всех других циклов у меня не было проблем. Я не хочу, чтобы кто-то написал код для меня. Я просто хотел бы объяснить, почему это происходит, если это возможно?Код, читающий дополнительную строку в моей петле?
Моего входной файл содержит:
This is a test file for hw3
How many Uppercase letters are in this f1le?
How many Lowercase letters are in this F1le?
H0W mAnY dIg1ts ar3 1N in this FILe?
Turn the 1npU7 N4m3 int0 its reverse
reverse the Lines to their opp05173 coutnerpart
find tOTal NumbEr of characTer5 in F1le
THIS IS A TEST LINE
Моего код этого раздела:
inFile.clear();
inFile.seekg(0, inFile.beg);
while(getline(inFile, line)){
wordInput.str(line);
wordInput.clear();
wordInput.seekg(0);
while(wordInput.get(c)){
if(islower(c)){
lowerCase++;
}
else if(isdigit(c)){
digit++;
}
}
if(lowerCase >= 1 && digit >= 1){
lineCount++;
}
}
cout << lineCount << endl;
return 0;
}
Я инициализируюсь все мои Int переменных 0, а сверху и я объявил мой sstream переменные также. Мои библиотеки включают в себя <sstream>
<fstream>
<string>
<iostream>
и <algorithm>
(который использовался для предыдущих частей.
Выход я получаю
8
, когда оно должно быть 7. В последней строке не должно быть расценено как это имеет нет строчных букв и цифр. Я думаю, что первая строка читается второй раз, а затем останавливается. Я вошел в класс C++ и еще не научился использовать отладчик. Спасибо заранее.
В начале цикла, сразу после того, как вы прочитали строку, напечатайте «digit» и «lowerCase»: вы обнаружите, что они не сбрасываются в '0', поэтому по существу они всегда'> = Даже если на линии нет цифр. – Tas
А, я вижу. Это имеет смысл. Мне нужно было сбросить значение в цикле. Это сработало отлично. Большое спасибо. Я действительно нервничал. – ryanpback