23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
|
1 | |
Функция fopen возвращает нулевой указатель (Visual Studio)19.03.2010, 23:35. Показов 6443. Ответов 36
Метки нет (Все метки)
Здраствуйте)
У меня возникла очень странная проблема.просто мистика. С чем может быть связано возвращение нулевого указателя в функции fopen.? Я пишу в винАПИ.По пока с новыми функциями не разобрался(для работы с файлами) Вот.И тут такое.Путь задан жестко.НО!она открывает его ИНОГДА, а чаще всего НУЛЛ возвращяет.Путь правильный.Потому,что по тому же пути из этого же фаила считывает инфу другая фун-я.ТАм всё норм.Файловый поток после считки закрываю. Даже не знаю в чем может быть дело. =( Добавлено через 1 час 20 минут ТА....всё грусно. Объясните тогда как работает OpenFile()
0
|
19.03.2010, 23:35 | |
Ответы с готовыми решениями:
36
Стандартная функция fopen возвращает не NULL и не значение Функция принимает указатель на void и возвращает указатель на int Функция для транслитерации строки возвращает нулевой результат Функция не возвращает указатель на структуру |
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
23.03.2010, 00:02 | 21 |
Слушай, можно открыть файл fopen (), CreateFile (), OpenFile ()
ПО-моему, во всех этих случаях, первый параметр у всех трёх функций- имя файла (в том случае если файл лежит водной директории с твоей прогой, но это частный случай, его не рассматриваем) или же ПУТЬ К ФАЙЛУ. При чём путь ПОЛНЫЙ. Который тебе возвертает (вернее, не возвертает, по-моему, GetOpenFileName) Ты передаёшь невесть что (сгенерированное GetOpenFileName) первым параметром в одну из этих функций (fopen (), допустим), она ни фига не открывает, естессно, выдаёт ноль. И ты после этого не видишь связи между GetOpenFileName и открытием других файлов?
0
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
|||||||||||||||||||||
23.03.2010, 00:13 [ТС] | 22 | ||||||||||||||||||||
ааааааа.Да нет же.
вот что я передаю в fopen!!
Я вобще не понимаю,как она может делать массивы "C:\xxx\yyy\" если блин '\' - это вобще часть управляющей конструкции.НО это ладно.я пытаюсь до вас донести вот что.
А вот так.fl=0x00000000 почему?!
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
23.03.2010, 00:25 | 23 | |||||
Слушай, я бы хотел поковыряться, но мне этот путь непонятен:
"dbase.module/Vodafone_McLaren_Mercedes.txt" Это какой-то экзотический путь. Можешь удостоверить что всё так как ты сказал, но путь пусть воттак как-нибудь выглядит,попроще то есть:
1
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
||||||
23.03.2010, 00:38 [ТС] | 24 | |||||
ВОт!!!!вот это была умная мысль!!!!
только незнаю почему вы так любите '\'. ВОт так прошли все тесты удачно(файл создан)
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
23.03.2010, 00:39 | 25 | |||||
Я лишь упростил объявление main, чтобы компилятор хавал Как видишь, выводится объявление "Всё работает" Да, я открываю свой файл , уж больно мне твой путь непонятен. С окном, созданным GetOpenFileName не работаю, как только он появляется, жму на крестик.
1
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
|
23.03.2010, 00:40 [ТС] | 26 |
Блин, как я счастлив
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
23.03.2010, 00:41 | 27 |
Хм... Странно, что ты не используешь MessageBox для проверки. Должен знать вроде.
Добавлено через 20 секунд А чё было-то? Я не понял
0
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
|
23.03.2010, 00:47 [ТС] | 28 |
Только теперь вопрос.Как же мне сохранять фаилы исходя из папки где лежит программа? ведь заранее не известно , где она будет.
А если я хочу сохранить например(у меня) C:/Projects/one/dbase.module/..... Но если её переместить этот путь уже будет не верен, понимаете о чем я? Добавлено через 58 секунд Было то,что краткий путь переставал работать после вызова опенфиленаме =((((( вот обдино ((( столько дней убил. Добавлено через 2 минуты ЗЫ я использовал для проверки точки остановки
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
23.03.2010, 00:51 | 29 |
Ты меня не путай. Ты хочешь сказать, что работаешь в винде, и у тебя в текущей директоРии есть папка
dbase.module (именно так, с точкой) В которой, в свою очередь, есть текстовый файл Vodafone_McLaren_Mercedes.txt? И вся эта херь соединена обратным слэшем и худо бедно Vodafone_McLaren_Mercedes.txt открывался, так что ли? Ну ни фига себе... Век живи, век учись. Если дело в этом, ты бы прекратил экзотику всё таки. Обратный слэш для линя, точка только перед расширением файла, как-то так... Чтобы головняков не было...
0
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
|
23.03.2010, 00:56 [ТС] | 30 |
окэй.Буду знать)))) это была плохая идея так назвать папку.
Добавлено через 3 минуты Насчёт обратного слэша... C:\\Downloads\file.txt -нэ C:\\Downloads/file.txt -да C:/Downloads/file.txt -да
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
23.03.2010, 01:04 | 31 |
Нет, не понимаю. Тебе нужно некоторый файл сохранить в папке с прогой, причём ЗАРАНЕЕ НЕИЗВЕСТНО, в какой папке эта прога будет лежать.
Так? Если так, то без проблем. Но не сейчас, завтра. Сейчас спать. Добавлено через 1 минуту Чем плохо? Добавлено через 1 минуту Надо так: C:\\Downloads\\file.txt Добавлено через 35 секунд Понимаешь, люди могут подумать, что у тебя линь... Зачем тебе непонятки всякие?
1
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
||||||
23.03.2010, 01:06 [ТС] | 32 | |||||
О ДА! я понял в чем была ПРОБЛЕМА. в том что я Лол....как так.
С какова меня потянуло имя папки с точкой сделать !!!!аахахаха =((((( стоило заменить точку на '_' и с таким путём
kravam, спасибо огромное , сам бы я никогда не понял этой фатальной ошибки!!!!
0
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
|||||||||||
23.03.2010, 01:12 [ТС] | 34 | ||||||||||
Для полного пути да, а вот для "кусочного",опытным путем выявлено
Добавлено через 2 минуты Хотя вот так норм
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
23.03.2010, 01:13 | 35 | |||||
Ну, может быть.
...Я бы, не мудрствуя лукаво, использовал
Чё хошь с этим именем делай.
0
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
|
23.03.2010, 01:14 [ТС] | 36 |
ок.попробую)
не знаю почему но работает всё что вы говорите по поводу слэшей только в таком варианте '//' а не '\\', незнаю может компилятор такой Не по теме: пойду спать)
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
23.03.2010, 01:16 | 37 |
Мда... Да нет, всё ничё, сам понимаешь, непринципиально, куда палка наклонена (лишь бы работало). Но так обычно в лине делается. Чел кинет взгляд на код- ага, у тебя линь. И пройдёт мимо. Только из-за этого.
0
|
23.03.2010, 01:16 | |
23.03.2010, 01:16 | |
Помогаю со студенческими работами здесь
37
Функция min_element() возвращает указатель на ноль Функция формирует массив и возвращает указатель на него Как функция возвращает указатель на структуру в массив указателей Функция, получающая подстроку, возвращает испорченный указатель на строку Функция возвращает строку (или указатель на начало строки) Функция находит минимальный элемент массива и возвращает указатель на него Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |