usuwanie słów

0

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)

0
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;

void wordskip(istream &sin,ostream &sout)
  {
   string s;
   while(getline(sin,s))
     {
      bool f=true,p=1&s.length();
      stringstream ss(s,ios::in);
      while(ss>>s)
        {
         bool q=1&s.length();
         if(p^q)
           {
            if(f) f=false;
            else sout<<' ';
            sout<<s;
           }
        }
      sout<<endl;
     }
  }

int main()
  {
   fstream f("test027.cpp",ios::in);
   wordskip(f,cout);
   f.close();
   cin.sync();
   cin.get();
   return 0;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1