![]() |
|
Модераторы: bsa |
![]()
|
|
| l2qwe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 16.7.2008 Репутация: нет Всего: нет |
Не доконца прчитываеться фаил(фозвращает EOF до того как кончился фаил)
f_get=fopen("ws0082.txt","r"); if (f_get==NULL)continue; i=0; while((i<64000)||(c_get==EOF)) { i++; c_get=getc(f_get); if((c_get>=33)&&(c_get<=122)) { cout<<c_get; } } Примерно на 4576 символе возвращаеться EOF но фаил больше. Прикрепил текстовый фаил которые не полностю прчитывается. Присоединённый файл ( Кол-во скачиваний: 11 )
ws0082.txt 28,00 Kb |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
во-первых, файл не текстовый.
во-вторых, у этого файла ты выводишь только те символы, которые не меньше 33 и не больше 122. Попробуй вывести какой-нибудь текстовый файл с английским текстом. |
|||
|
||||
| l2qwe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 16.7.2008 Репутация: нет Всего: нет |
я знаю что вывожу только латынь цифры и тому подобно, но вопрс не в выводе на экран а в том что fgetc возвращает EOF до тго как кончился фаил по сути.
Попрбуй выполни этот листинг и увидиш чт на экран не все символы в заданом диапазоне выведуться, а только те что стоят до 4576. Прилогаю аналагичный файл который алгаритмоп прчитываеться нормально Присоединённый файл ( Кол-во скачиваний: 3 )
ws0022.txt 28,00 Kb |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
l2qwe, открой файл в бинарном виде ("r" замени на "rb").
Добавлено через 1 минуту и 31 секунду Кстати, c_get должен быть типа int, а не char. Так как символ с кодом 255 помещенный в переменную типа char становится равен EOF |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
2l2qwe, тебе ж сказали: попробуй f_get=fopen("ws0082.txt","rb");
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| l2qwe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 16.7.2008 Репутация: нет Всего: нет |
Всё отлично
Спасибо ОГРОМНОЕ, 2 дня изврашался как мог над чтением этого файла, а так не пробовал. |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
P.S. Блин, bsa меня опередил..
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |