mam napisać program , który po wczytaniu lini słów oddzielonych spacją, wyświetli linie parzyste bez słów nieparzystych i linie nieparzyste bez słów parzystych
linia parzysta to taka , w której ilość liter jest parzysta
słowo parzyste to takie , w którym ilość liter jest parzysta
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
void test(){
ofstream plik ("slowa.txt");
plik<<"abc abcd abcdef"<<endl;
plik<<"fgh fghi fghij"<<endl;
plik<<"abcdef ghijkl";
plik.close();}
void tesca (){
ifstream plik ("slowa.txt");
string name,s,h;
for (int i=1;i<=3;++i){
getline (plik,name);
int x;
x=name.length();
for (int j=0;j<name.length();j++){
if(name[j]==' '){
x-=1;}// tu usuwa mi spacje
}
cout<<x; //wyświetla rzeczywistą długość lini
if(x%2==0) {//linie parzyste
while (!plik.eof()){
plik>>s;
if (s.length()%2==0)//słowa parzyste
cout<<s<<endl;
}}
else if(x%2!=0) {while (!plik.eof()){
plik>>h;
if(h.length()%2==0)
cout<<h<<endl;}
}
}
plik.close();}
int main(int argc, char *argv[])
{test();
tesca();
system("PAUSE");
return EXIT_SUCCESS;
}
i jest taki problem, że przy wczytywaniu lini nieparzystych długość lini się zmienia na (13,13,13)
od tego miejsca jest już źle (else if)