Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2009, 14:40   #11
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Код:
char *buff = new char[bufLen];
bool bResult = ReadFile(hFile, buff, bufLen, &bRead, NULL);
buff[bRead] = 0;
netrino вне форума Ответить с цитированием
Старый 22.11.2009, 14:43   #12
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Файл текстовый или с бинарными данными? В bRead 40 записано и на экран 40 символов выводится?
Файл текстовый. В bRead - записывается ровно столько, сколько указано в bufLen.
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума Ответить с цитированием
Старый 22.11.2009, 14:50   #13
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Код:
char *buff = new char[bufLen];
bool bResult = ReadFile(hFile, buff, bufLen, &bRead, NULL);
buff[bRead] = 0;
Да, так корректно выводится. Получается, что всегда нужно в ручную обрабатывать такие вещи, используя выделение памяти?
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума Ответить с цитированием
Старый 22.11.2009, 15:03   #14
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от nazavrik
Получается, что всегда нужно в ручную обрабатывать такие вещи, используя выделение памяти?
Да, безусловно ). Выход - писать обёртки над API, но и готовых таких уже достаточно, тот же ifstream из стандартной библиотеки. И, кстати, памяти лучше выделять на байт больше в данном случае
Код:
char* buff = new char[bufLen+1];
...
netrino вне форума Ответить с цитированием
Старый 22.11.2009, 15:11   #15
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

Ну это-то да, бесспорно

Спасибо большое!
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц