Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение файла VC++, stream!=NULL 
:(
    Опции темы
Cristall512
Дата 22.1.2011, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 29.7.2006

Репутация: нет
Всего: нет



Есть DLL, в ней есть ф-ция, которая должна выполнять чтение из файла. Но при обращении к этой функции вылетает ошибка Expression: (stream!=NULL). Вот код:

Код

LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) 

{
    if (nCode<0)
    {
        return CallNextHookEx(hKeyHook,nCode,wParam,lParam);
    }
    if ((wParam == WM_KEYDOWN)||(wParam == WM_SYSKEYDOWN))
    {
        f=fopen("C:\profile.nav", "r");
        do
        {
            fscanf(f, "%[^\n]", key1);
            getc(f);
            fscanf(f, "%[^\n]", key2);
            getc(f);
            fscanf(f, "%[^\n]", file);
            keys = ((PKBDLLHOOKSTRUCT)lParam)->vkCode;
            if(key1==itoa(keysp, k, 10)&&key2==itoa(keys, k, 10))
            {
            MessageBoxA(NULL, itoa(keys, k, 10), NULL, MB_OK);
            WinExec(file, SW_SHOW);
            }
        }
        while(getc(f)!=EOF);
        keysp=keys;
        fclose(f);
    }
    else
    {
        keysp=0;
    }
    return CallNextHookEx(hKeyHook,nCode,wParam,lParam);
}


В чём ошибка? Или здесь ещё как-то можно читать файл? Читать надо построчно...
PM MAIL   Вверх
KaraKum
Дата 22.1.2011, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: нет
Всего: 1



Скорее всего это означает что такого файла не существует.
PM MAIL WWW   Вверх
Cristall512
Дата 22.1.2011, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 29.7.2006

Репутация: нет
Всего: нет



существует, fopen работает, ошибка на fscanf
PM MAIL   Вверх
borisbn
Дата 22.1.2011, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



замени 
f=fopen("C:\profile.nav", "r");
на
f=fopen("C:\\profile.nav", "r");


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 22.1.2011, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Cristall512, имей привычку после открытия файла проверять, открылся ли он на самом деле. делается это очень просто:
Код
if (!f) {
   perror("Failed to open file:");
   exit(1);
}

PM   Вверх
alexvs11
Дата 22.1.2011, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 2
Всего: 10



ну судя по всему тут даже ворнинг компилятора должен был быть
PM MAIL   Вверх
Cristall512
Дата 23.1.2011, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 29.7.2006

Репутация: нет
Всего: нет



Спасибо, работает )
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.