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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2017, 13:40   #1
Aleks_DED
Новичок
Джуниор
 
Регистрация: 13.06.2017
Сообщений: 4
По умолчанию Считывание с текстового файла.WinApi.

Доброго времени суток!
Нужно считать из текстового файла информацию и вывести ее в окне. Пробовал через цикл do-while (как советовали на одном из форумов) ничего дельного не вышло...Помогите разобраться, пожалуйста.
Вот код, точнее то, что у меня получилось:

Код:
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,
	HINSTANCE hPrevInstance,
	LPSTR lpCmdLine,
	int nCmdShow)
{
	const TCHAR csNameFile[] = L"Test.txt";
	TCHAR szBuffer[128];
	TCHAR szSymbol[2];
	DWORD dwCount;
	HANDLE hOpenFile = CreateFile(csNameFile, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
	int i = 0;

	do {
		ReadFile(hOpenFile, &szSymbol, sizeof(szSymbol), &dwCount, NULL);
		szBuffer[i] = szSymbol[0];
		i++;
	} while (szBuffer[i] != '\r' && szBuffer[i] != '\n');

	MessageBox(0, szBuffer,L"Test", 0);

	CloseHandle(hOpenFile);
	ExitProcess(0);
}

Последний раз редактировалось Aleks_DED; 13.06.2017 в 15:06.
Aleks_DED вне форума Ответить с цитированием
Старый 13.06.2017, 14:07   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от Aleks_DED Посмотреть сообщение
sizeof(szSymbol),
Как по-вашему, чему будет равно данное выражение?
waleri вне форума Ответить с цитированием
Старый 13.06.2017, 14:37   #3
Aleks_DED
Новичок
Джуниор
 
Регистрация: 13.06.2017
Сообщений: 4
По умолчанию

В моем понимании 2, разве в этом ошибка?
Aleks_DED вне форума Ответить с цитированием
Старый 13.06.2017, 14:56   #4
Aleks_DED
Новичок
Джуниор
 
Регистрация: 13.06.2017
Сообщений: 4
По умолчанию

Я понял, что написал бред, заменил на:

Код:
ReadFile(hOpenFile, &szSymbol, 1, &dwCount, NULL);
Aleks_DED вне форума Ответить с цитированием
Старый 13.06.2017, 15:03   #5
Aleks_DED
Новичок
Джуниор
 
Регистрация: 13.06.2017
Сообщений: 4
По умолчанию

Но ошибка осталась, и видимо в строке(так как получается бесконечный цикл)

Код:
while (szBuffer[i] != '\r' && szBuffer[i] != '\n');
Aleks_DED вне форума Ответить с цитированием
Старый 13.06.2017, 15:17   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

У вас две проблемы здесь:
Код:
                szBuffer[i] = szSymbol[0];
		i++;
	} while (szBuffer[i] != '\r' && szBuffer[i] != '\n');
1. Вы увеличили счетчик ДО проверки и, соответственно, проверяете не введенное только что.
2. szBuffer у вас TCHAR, соответственно и '\r' надо делать такими же
p51x вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание текстового файла Waqq Общие вопросы Delphi 4 24.01.2011 20:43
Считывание из текстового файла PlumBoom Общие вопросы C/C++ 8 21.03.2010 20:41
Считывание с текстового файла Morphling Фриланс 12 07.02.2010 17:37
считывание с текстового файла ciaonataha Помощь студентам 0 20.04.2009 12:09