![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mr.Anderson |
|
||||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Помогите пожалуйста! Никак в толк не возьму, в чем дело! Пишу следующее:
Можете себе представить, не работает! Между прочим, вот такая строчка:
Работает! Что за дела! Помогите плиз исправить! |
||||
|
|||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Давай больше кода. Что такое s? И как "не работает"? не пишется, не реагирует. Как?
|
|||
|
||||
| The Thing |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: нет Всего: 3 |
Вот не помню точно.. но через принтф у меня была такая же байда..какая именно не помню, но именно буква я там выступала в роле чего-то другого.
Короче напиши отлавливает она 'я' или нет? (помоему с этимм проблема была.) пиши код буквы 'я'ВСЕ! -------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
sergej.z, s - символьная переменная (тип char). Не работает - в смысле в целевом файле нужная комбинация ya не появляется.
|
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Пробовал вот такое сделать:
Так. Попробовал как вариант вписать код буквы Я.
Т.е. вписать вместо "я" ее код. Бесполезняк. |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Если это важно. ОС: WinXP. Компилер: Borland C++ Builder 6.0.
Код (это все, что относится к моему вопросу!):
|
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 1 Всего: 26 |
sim7, а заглавная 'я' работает?
-------------------- Жизнь - печальная штука. |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
nikitao, нет.
|
|||
|
||||
| Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
постойте ка, вы куда пишете? Неужели в тот же файл из которого читаете ??
-------------------- Бонифаций. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
код буквы char('я')=-1 (т.к. по умолчанию char считается знаковым) EOF тоже равен -1 вот и получается, что буква 'я' путается с признаком конца файла выход такой: сначала присвоить результат getc какой-нибудь целой переменной потом проверить на равенство -1 а потом - присвоить s... -------------------- qqq |
|||
|
||||
| shad0w |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 9.5.2005 Репутация: нет Всего: нет |
undigned char s;
|
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Бонифаций, нет, читается из одного, пишется в другой. Я не настолько глуп, чтобы понять, что с одним и тем же файлом эти две операции выполнять нельзя.
shad0w, не работает. maxim1000, попробую. |
|||
|
||||
| mr.Anderson |
|
||||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Не сработало.
Вот такое для интереса написал:
Не работает. Не появляется в консольном окошке ни YES, ни NO. Добавлено @ 17:49 Немного подправил код. Вот так:
Сработало. Вот только в консольном окошке появилось NO. Хотя в файле, который код роет, написана буковка Я. |
||||
|
|||||
| Darhazer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 28.9.2005 Где: HellCity (Sofia, Bulgaria) Репутация: 2 Всего: 29 |
Попробуйте так:
У вас же уже есть проверка на 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 |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Darhazer, от меня плюс в репутацию. Большое спасибо!
Добавлено @ 17:59 Всем, кто отвечал, тоже спасибо за старание. Вопрос решен. |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Стоп-с! Рановато я обрадовался. Появилась еще более серьезная проблема.
Буква "я"-то заработала. Да вот только теперь она стала дописываться в конец всего текста. Вроде, решение понятно: просто "отрезать" два последних символа ("ya") из текста. И вывести отредактированный. Да вот только не получилось так. Почему-то иногда "я" писалась, а иногда нет! И чаще получалось так, что у меня обрезались нужные символы. Скажем, писал "папа", а вместо "papa" получал "pap". Долго бился, но ничего не вышло. P.S. Знаю, знаю, чего вы потребуете. Больше кода! Как "оживлю" программу, выложу код. Через день-два. |
|||
|
||||
| maxim1000 |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
лучше привести s при сравнении с 'я'... Добавлено @ 21:50 а это уже вполне точно указывает на то, что конец файла принимается за я странно только, почемон все-таки выходит... Добавлено @ 21:54 а... все
по if(s==EOF) break; оно выходить не может, иначе вышло бы до printf("Yes!") значит, оно выходит из-за !feof(file) а это значит, что последний "несуществующий" символ конца файла читается, а уже после этого устанавливается feof а это, в свою очередь, значит, что проверять на конец файла нужно ПОСЛЕ чтения...
-------------------- qqq |
||||||
|
|||||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
Попробуй do - while
то есть сначала присваивай (s = getc(file)) и печатай (printf("%s","ya")), а потом проверяй (while (s != EOF) ) Это сообщение отредактировал(а) Dov - 10.3.2006, 23:10 -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
Так, пожалуй, будет лучше
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |