Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [c++] где то ошибка в цикле


Автор: kelario 11.3.2010, 18:49
Добрый день!! Прошу помощи с алгоритмом.Что то идет не так.Суть программы : есть 2 файла.в одном из них хранится нное количество слов,записанных через пробел(слово1 слово2 слово2).во втором хранится нное количество пар слов с запятой между ними .т.е  слово1,слово2 слово3,слово4. Программа ищет в первом файле слова, которые во втором файле встречаются слева от запятой и заменяет их словом из той же пары словом ,которое находится  с права от запятой. 
Проблема: программа записывает лишние символы в массив,в который идут слова из второго файла.Из за чего 2 слова никогда не могут буть равны друг другу.
Код

while(file)
{
o=0;
i=0;
          while (file)
          {
          
                         file.get(ch);
                        if (ch==' ')
                         {
                               
                        file.peek();
                       i--; 
                              break;
                              } 
                         if(file) p[i]=ch;
                      cout<<'p'<<p[i]<<i<<"\n";
                     i++;
                     
                     
                     
                    
           }

               
ifstream check("file2.txt",ios::in|ios::binary)  ;
while(check)
{
    while(check)
    {
    check.get(ch);
      if (ch==',')
        { 
     while(ch!='  ')
        
         {
          check.peek();
          check.get(ch);
          }
      o-=o; 
        break;
       
        }
    
    if(check) r[o]=ch;
     cout<<'r'<<r[o]<<o<<"\n";
    o++;
    }
    

}

}/
 cout <<"file2"<<r<<"\n";
cout <<"file1"<<p<<"\n"; 
 
 

if (r==p) //не бывает
{
         cout <<i<<o;
         cout <<"true\n";
         
         }
       


    while(o>0)
 {
r[o]='\0';
o--;
}

while(i>0)
 {
  p[i]='\0';
  i--;
}

 



}

Код




Автор: ИванМ 11.3.2010, 19:01
если только с нуля написать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)