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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2016, 20:27   #1
Тони Редгрейв
Новичок
Джуниор
 
Регистрация: 13.03.2016
Сообщений: 4
По умолчанию Чтение файла .exe

Всем привет.
Недавно столкнулась с необходимостью вычитать данные из файла .exe в текстовом формате.
Есть вот такой код:
Код:
        char filePath[MAX_PATH];
	GetModuleFileName(NULL, (LPSTR)filePath, MAX_PATH);	//получение файла, из которого запущен процесс

	ifstream file(buffer, std::ios::in | std::ios::binary);  //открытие файла на чтение

	char buffer[4];
	while (!file.eof()){
		file.read(buffer, 4);  //соответственно, чтение данных в файла
		cout << buffer << endl;
	}
		
	file.close();
	system("PAUSE");
Проблема в том, что цикл чтения не заканчивается. Я не очень понимаю, в чем дело. Может, кто-нибудь с этим сталкивался?
Тони Редгрейв вне форума Ответить с цитированием
Старый 13.03.2016, 20:32   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Читайте документацию ifstream, проверяйте успешность открытия файла и read.
http://en.cppreference.com/w/cpp/io/basic_ifstream
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 13.03.2016, 21:30   #3
Тони Редгрейв
Новичок
Джуниор
 
Регистрация: 13.03.2016
Сообщений: 4
По умолчанию

Спасибо, почитала, нашла слегка другое, немного извращенное условие выхода из цикла чтения.
Тони Редгрейв вне форума Ответить с цитированием
Старый 14.03.2016, 10:57   #4
Тони Редгрейв
Новичок
Джуниор
 
Регистрация: 13.03.2016
Сообщений: 4
По умолчанию

Возник еще один вопрос. После чтения нужно открыть этот же exe'шник на запись. Вот код:

Код:
char filePath[MAX_PATH];
GetModuleFileName(NULL, (LPSTR)filePath, MAX_PATH);
/*блок чтения*/
ofstream fe(filePath, std::ios::out | std::ios::app | std::ios::binary);
if (!fe.is_open()) {
    cout << "File is not open!" << endl;
    system("PAUSE");
    return 0;
}
Так вот программа упорно выводит "File is not open!".

P.S. может, вопросы глупые, но я не так часто общаюсь с C++ и особых тонкостей не знаю, так что...
Тони Редгрейв вне форума Ответить с цитированием
Старый 14.03.2016, 11:09   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Скорее всего нельзя перезаписывать ехе пока запущена программа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.03.2016, 11:11   #6
Тони Редгрейв
Новичок
Джуниор
 
Регистрация: 13.03.2016
Сообщений: 4
По умолчанию

Хм... ладно. Спасибо, будем придумывать что-то получше.
Тони Редгрейв вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение Файла С++ Sterben Помощь студентам 8 18.09.2015 08:41
Извлечение всех exe-файла из запороленного exe -файла Memfis1992 Общие вопросы Delphi 1 27.10.2010 03:06
Запуск и чтение ответа от php.exe Vov Общие вопросы Delphi 3 30.07.2010 07:13
Чтение/запись настроек в саму себя(в exe). Человек_Борща Общие вопросы Delphi 19 04.06.2010 20:21
чтение из одного exe файла, и запись в другой exe inndim Общие вопросы Delphi 2 04.02.2009 15:23