Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [c++] где то ошибка в цикле, символы не так записываются в массив 
:(
    Опции темы
kelario
Дата 11.3.2010, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 19.9.2008

Репутация: нет
Всего: нет



Добрый день!! Прошу помощи с алгоритмом.Что то идет не так.Суть программы : есть 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--;
}

 



}

Код




PM MAIL   Вверх
ИванМ
Дата 11.3.2010, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 13
Всего: 23



если только с нуля написать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0397 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.