Как пропустить/перейти в конец строки при считывании файла C++
Есть файл с текстом. Программа считывает всё посимвольно. Если находит, к примеру букву из английского алфавита - нужно перейти на следующую строку для считывания. как это реализовать? Вот отрывок кода:
string s;
char sy;
while (file.get(sy)) // считываем файл посимвольно
{
s = s + sy;
if (sy == '.') {
textStr.push_back(s);
CheckCorrectInput(str); //функция ищет англ символы.
if (eror) { // если функция нашла то...
ПЕРЕЙТИ НА СЛЕДУЮЩУЮ СТРОКУ
}
}
}
Ответы (2 шт):
Автор решения: Jap_Story
→ Ссылка
Проблему решил. Выдернул часть своего кода.
void MyString::CheckCorrectInput(string textStr){
try {
error = true;
if (textStr.check_symb()) throw "Недопустимые символы\nПовторите попытку\n";
error = false;
}
catch (const char* v) {
cout << v << endl;
}
catch (...) {
cout << "Незапланированная исключительная ситуация";
}
}
void MyString::InputFromFile() {
while (getline(file, s1)) { // считываем строку из файла
error = false; //Флажок для пропуска строки. Значение меняется в функции CheckCorrectInput
for (char sy : s1) { //Проверяем каждый элемент в строке
if (sy == '\n') continue; //если переход на след. строку ничего не делать
s = s + sy; // добавить в строку символ
if (sy == '.') { // Если символ точка, то закинуть это предложение в вектор типа string. Можно и без этого, но это маленькая часть моего кода, поэтому мне это нужно.
textStr.push_back(s);
for (string str : textStr) {
if (error) { break; }// проверяем флаг, который ищется в CheckCorrectInput. По умолчанию значение false
cout << "\nПредложение №" << i << " ";
CheckCorrectInput(str); // поиск буквы из англ. языка
i++;
}
textStr.pop_back();// убрать элемент из вектора
s.clear();//очистить строку
}
}
}
}
}