2012-06-07 2 views
0

Сначала я начну с того, я прочитал по ссылке ниже:отладки утверждение не удалось fprintf

fprintf debug assertion fail

Я получаю ту же ошибку, что он/она сделала, однако у меня это не из-за та же самая причина. Вот код, который находится в C:

FILE * fp; 
fp = fopen("C:\ro_apps\IandQ.csv", "w"); 
fprintf(fp, "%f\n", (j+pTxWbHf110c->cAnalogOutputBuffer)->re); 

Я получаю ошибку состояния:

Debug Assertion Failed!

Программа: (не имеет значения) файла: F: \ дд \ vctgools \ crt_bld \ self_x86 \ элт \ SRC \ fprintf.c Line: 55

Выражение (! Обл = NULL)

Я видел в другой ссылке, которую кто-то сказал, используя отладочную версию, чтобы увидеть, был ли файл даже открыт, прежде чем использовать команду fprintf. Шахта не открывается. Какие-нибудь советы или трюки?

Спасибо!

+1

у меня нет ответа, но что-то махинациями является 'J + pTxWbHf110c-> '? – JoeFish

+3

Вам нужно избежать обратных косых черт: '' C: \\ ro_apps \\ ... "' –

+0

У вас есть ответ. –

ответ

2

Ваше имя неверное. Вы должны бежать каждый обратный слэш \:

fp = fopen("C:\\ro_apps\\IandQ.csv", "w"); 

Кроме того, вы всегда должны проверить, если fopen не удалось:

if(fp == NULL){ 
    perror("Couldn't open file: C:\\ro_apps\\IandQ.csv\n"); 
    return; 
} 
+0

Очень заманчиво -1 для плохого сообщения об ошибке. 'perror (path)' –

+0

@WilliamPursell: Извините, я использую 'fprintf (stderr, ...)' и полностью забыл о 'perror'. – Zeta

+0

Благодарим вас за комментарий обратной косой черты, я до сих пор относительно новичок в C, и мне никогда не приходилось использовать fopen. Не знаю, как я пропустил это, когда я читал на нем кратко :) Я пошел вперед и добавил, что проверка, и это действительно не удается, и я не знаю, почему. Я знаю, что имя файла верное. Существуют ли какие-либо специальные правила, в которых файл может или не может быть размещен на основе того, где находится ваше решение в VS2010? – TZPike05

Смежные вопросы