![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Toohtik |
|
||||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 142 Регистрация: 30.1.2006 Где: Харьков Репутация: нет Всего: нет |
Есть задача: прочитать и вывести на экран текст из файла. Это все у меня отлично получается. читаю таким образом:
Но как всегда хочется большего - я хочу чтоб readfile[1000] был произвольной длины, т.е. размер определялся в ходе работы программы:
Но почему то при выводе текста выбивает ошибку ![]() Это сообщение отредактировал(а) Toohtik - 26.11.2006, 22:07 Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
||||
|
|||||
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: 3 Всего: 4 |
Было
ReadFile(hFile,&readfile,1000,&b,NULL); Надо ReadFile(hFile,readfile,1000,&b,NULL); Тут в качестве второго параметра передавался адрес указателя, а надо сам указатель. P.S. Вместо TextOut используй DrawText Это сообщение отредактировал(а) neosapient - 26.11.2006, 22:39 |
|||
|
||||
Toohtik |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 142 Регистрация: 30.1.2006 Где: Харьков Репутация: нет Всего: нет |
Может вопрос и не сильно относится к теме, но все таки. Почему при чтении из файла в конце всегда добавляется 4 непонятны символа. Ну один я предпологаю - это конец строки, а 3 остальных?
|
|||
|
||||
witex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 16.10.2006 Где: Эстония Репутация: 1 Всего: 4 |
ну замени просто четвёртый с конца символ на '\0'
Для точности конечно удобно сделать так:
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. |
|||
|
||||
Toohtik |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 142 Регистрация: 30.1.2006 Где: Харьков Репутация: нет Всего: нет |
Та это все понятно
![]() |
|||
|
||||
BUGOR |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 1 Всего: 16 |
Toohtik, Это ты уже смотри в параметры передаваемые функции, скорее всего ты записываешь больше байт, чем надо, ну т.е. сама ReadFile ничего лишнего в файл не пишет, никаких служебных символов и прочего, всё чётко: сколько сказал - столько записали.
|
|||
|
||||
Toohtik |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 142 Регистрация: 30.1.2006 Где: Харьков Репутация: нет Всего: нет |
Появилась такая мысль: а может это из за того что я выделяю память равную размеру файла, а не количеству букв в нем?
|
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
Toohtik, а это что, не одно и то же?
|
|||
|
||||
Toohtik |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 142 Регистрация: 30.1.2006 Где: Харьков Репутация: нет Всего: нет |
Ну как я подумал, может добавляется еще какая то информация не текстовго характера... Ну к примеру дата создания файла или еще что - то ...
|
|||
|
||||
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: 3 Всего: 4 |
Я думаю, что у тебя выделен массив, но он не инициализирован.
Когда ф-ия ReadFile пишет в буфер, она возвращает в четвертую переменную (b) число скопированых байт. Текстовая строка в буфере нулем не закрывается. Это нужно самому делать.
Те добавочные символы, что видны - мусор в памяти |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |