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

Поиск:

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


iOS Lead Developer
****


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

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



Помогите пожалуйста! Никак в толк не возьму, в чем дело! Пишу следующее:
Код

if(s=='я') fprintf(nfile,"%s","ya");


Можете себе представить, не работает! Между прочим, вот такая строчка:
Код

if(s=='ю') fprintf(nfile,"%s","yu");


Работает! Что за дела! Помогите плиз исправить!


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

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


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Давай больше кода. Что такое s? И как "не работает"? не пишется, не реагирует. Как?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
The Thing
Дата 9.3.2006, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот не помню точно.. но через принтф у меня была такая же байда..какая именно не помню, но именно буква я там выступала в роле чего-то другого.

Короче напиши отлавливает она 'я' или нет? (помоему с этимм проблема была.) пиши код буквы 'я'ВСЕ!


--------------------
Правильность работы программы зависит от двух велечин.
В нужном месте должны стоять нолик и еденичка.
PM MAIL   Вверх
mr.Anderson
Дата 9.3.2006, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



sergej.z, s - символьная переменная (тип char). Не работает - в смысле в целевом файле нужная комбинация ya не появляется.


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

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


iOS Lead Developer
****


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

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



Пробовал вот такое сделать:
Так. Попробовал как вариант вписать код буквы Я.
Код

if(s=='\xFF') fprintf(nfile,"%s","ya");

Т.е. вписать вместо "я" ее код. Бесполезняк.


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

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


iOS Lead Developer
****


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

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



Если это важно. ОС: WinXP. Компилер: Borland C++ Builder 6.0.

Код (это все, что относится к моему вопросу!):
Код

void func(void);
//---------------------------//

void main(void)
{
 func();
}
//---------------------------//

void func(void)
{
 FILE *file;
 file=fopen("nt.txt","w");
 char s;
 while((s=getc(file))!=EOF)
  if(s=='я') fprintf(file,"%s","ya");

 fclose(file);
}



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

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


Кот-программист
***


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

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



sim7, а заглавная 'я' работает?


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
mr.Anderson
Дата 9.3.2006, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



nikitao, нет.


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

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


Опытный
**


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

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



постойте ка, вы куда пишете? Неужели в тот же файл из которого читаете ?? smile


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
maxim1000
Дата 10.3.2006, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(sim7 @ 9.3.2006, 21:14 Найти цитируемый пост)
while((s=getc(file))!=EOF)
  if(s=='я') fprintf(file,"%s","ya");

код буквы char('я')=-1 (т.к. по умолчанию char считается знаковым)
EOF тоже равен -1
вот и получается, что буква 'я' путается с признаком конца файла
выход такой:
сначала присвоить результат getc какой-нибудь целой переменной
потом проверить на равенство -1
а потом - присвоить s...


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


Новичок



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

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



undigned char s;
PM MAIL   Вверх
mr.Anderson
Дата 10.3.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Бонифаций, нет, читается из одного, пишется в другой. Я не настолько глуп, чтобы понять, что с одним и тем же файлом эти две операции выполнять нельзя. smile

shad0w, не работает.

maxim1000, попробую.


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

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


iOS Lead Developer
****


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

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



Не сработало.
Вот такое для интереса написал:
Код

void main(void)
{
 FILE *file;
 file=fopen("nt.txt","w");
 fclose(file);
 
 file=fopen("nt.txt","rb");
 int s;
 while(!feof(file))
 {
  s=fgetc(file);
  if(s==EOF) break;
  if(s==(unsigned char)'я') printf("Yes!");
  else printf("No!");
 }
 fclose(file);
 getch();
}

Не работает. Не появляется в консольном окошке ни YES, ни NO.
Добавлено @ 17:49
Немного подправил код. Вот так:
Код

void main(void)
{
 FILE *file;
 file=fopen("nt.txt","w");
 fclose(file);
 
 file=fopen("nt.txt","rb");
 int s;
 while(!feof(file))
 {
  s=fgetc(file);
//  if(s==EOF) break; <---- Вот эту строчку убрал
  if(s==(unsigned char)'я') printf("Yes!");
  else printf("No!");
 }
 fclose(file);
 getch();
}

Сработало. Вот только в консольном окошке появилось NO. Хотя в файле, который код роет, написана буковка Я.


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

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

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



Попробуйте так:
Код

void main(void)
{
 FILE *file;
 file=fopen("nt.txt","w");
 fclose(file);
 
 file=fopen("nt.txt","rb");
 int s;
 while(!feof(file))
 {
  s=fgetc(file);
  //if(s==EOF) break;
  if(s=='я') printf("Yes!");
  else printf("No!");
 }
 fclose(file);
 getch();
}

У вас же уже есть проверка на feof, и она работаеть с 0, а не с -1, зачем вам проверят и s на eof, если знаете, что eof == 'я'

P.S. NO появилось, потому что проверяете на (unsigned char) 'я', а s - signed char

Это сообщение отредактировал(а) Darhazer - 10.3.2006, 17:56


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
mr.Anderson
Дата 10.3.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Darhazer, от меня плюс в репутацию. Большое спасибо!
Добавлено @ 17:59
Всем, кто отвечал, тоже спасибо за старание. Вопрос решен.


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

user posted image
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0579 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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