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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Переделывание" букв в что-то другое 
:(
    Опции темы
mr.Anderson
Дата 10.3.2006, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Стоп-с! Рановато я обрадовался. Появилась еще более серьезная проблема.
Буква "я"-то заработала. Да вот только теперь она стала дописываться в конец всего текста. Вроде, решение понятно: просто "отрезать" два последних символа ("ya") из текста. И вывести отредактированный. Да вот только не получилось так. Почему-то иногда "я" писалась, а иногда нет! И чаще получалось так, что у меня обрезались нужные символы. Скажем, писал
"папа", а вместо "papa" получал "pap". Долго бился, но ничего не вышло.

P.S. Знаю, знаю, чего вы потребуете. Больше кода! Как "оживлю" программу, выложу код. Через день-два.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
maxim1000
Дата 10.3.2006, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

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



Код

 while(true)
 {
  s=fgetc(file);
  if(s==EOF) break;
  if((char)s=='я') printf("Yes!");
  else printf("No!");
 }

лучше привести s при сравнении с 'я'...
Добавлено @ 21:50
Цитата(sim7 @ 10.3.2006, 20:09 Найти цитируемый пост)
Да вот только теперь она стала дописываться в конец всего текста

а это уже вполне точно указывает на то, что конец файла принимается за я
странно только, почемон все-таки выходит...
Добавлено @ 21:54
а... все smile

Цитата(sim7 @ 10.3.2006, 16:42 Найти цитируемый пост)
while(!feof(file))
while(!feof(file))
{
  s=fgetc(file);
  if(s==EOF) break;
  if(s==(unsigned char)'я') printf("Yes!");
  else printf("No!");
}

по if(s==EOF) break; оно выходить не может, иначе вышло бы до printf("Yes!")
значит, оно выходит из-за !feof(file)
а это значит, что последний "несуществующий" символ конца файла читается, а уже после этого устанавливается feof
а это, в свою очередь, значит, что проверять на конец файла нужно ПОСЛЕ чтения...
Код

while(true)
 {
  s=fgetc(file);
  if(feof(file))
    break;
  if(s==(unsigned char)'я') printf("Yes!");
  else printf("No!");
 }



--------------------
qqq
PM WWW   Вверх
Dov
Дата 10.3.2006, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

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



Попробуй do - while
Код

 do
 {
     s = getc(file);
     if(s == 'я')
         printf("%s","ya");

 }while (s != EOF);

то есть сначала присваивай (s = getc(file)) и печатай (printf("%s","ya")), а потом проверяй (while (s != EOF) )

Это сообщение отредактировал(а) Dov - 10.3.2006, 23:10


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Dov
Дата 11.3.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

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



Так, пожалуй, будет лучше
Код

int s;

do
{
    s = fgetc(file);
    if(s == (unsigned char)'я')
    {// здесь вывод на экран
        printf("%s\n","ya");
        s = fgetc(file);
    }
    // это просто для проверки
    //else
    //    printf("%s\n","no");

}while(s != EOF);



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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