Моя проблема в том, что я не знаю точно, как пропустить эти строки.
Вот идея: предполагая, что у вас всегда есть Engli sh и Spani sh слово (или строка), встречающееся альтернативно в файле, вы можете оставить логическую переменную is_english
для обозначения языка текущего слова (или строки). Первоначально он установлен на true
, предполагая, что первое слово (или строка) находится на английском языке sh, а затем на false
, true
, false
и т. Д. c. В качестве альтернативы, каждый раз, когда вы читаете новое слово (или строку). На каждой итерации, если is_english
равно true
, вы добавляете текущее слово (или строку) к вектору English
. В противном случае добавьте Spanish
вектор. Код приведен ниже для справки.
Предполагается, что у вас есть такой файл:
friend
amigo
mother
madre
telephone
teléfono
#include <iostream>
#include <fstream>
#include <vector>
int main(){
std::ifstream in("./input.txt");
if(!in){
std::cout<<"Error opening the file! Maybe the file does not exist!";
return 0;
}
std::string one_line;
std::vector<std::string> english, spanish;
bool is_english = true; // Variable to denote current word (starts with english)
while(in.eof()==0){ // Read until end of file
getline(in,one_line);
if(is_english) // If english
english.push_back(one_line);
else // Otherwise, spanish
spanish.push_back(one_line);
is_english = !is_english; // Flip boolean variable value
}
std::cout<<"English words:\n";
for(const auto i:english)
std::cout<<i<<std::endl;
std::cout<<"\nSpanish words:\n";
for(const auto i:spanish)
std::cout<<i<<std::endl;
return 0;
}
Выход
English words:
friend
mother
telephone
Spanish words:
amigo
madre
teléfono