Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > fprintf не работает


Автор: Desmond 1.2.2008, 13:03
Люди что может быть - проект Visual Studio C++ компилируется и в Release и Debug. Все работает. 
Но если запустить получившийся exe то выдается ошибка что в приложении обнаружена ошибка.
Закоментарил в прилодении строку fprintf() - ошибка исчезла. Что может быть такого особенного в записи строк в файл?


Код

char myfilename[11],bs[10];
strcpy(myfilename,"av");
int hour1,min1,sec1;
nowdate.GetTime(hour1,min1,sec1);
_itoa (sec1,bs1,10);
strcat(myfilename,bs1);
myfilename[9]='\0';

FILE *myfile=fopen(myfilename,"w+b");

char stroka[100];
strcpy(stroka,"");
strcat(stroka,REIS);
strcat(stroka,"|");

fprintf(myfile,"%s\r\n",stroka);

Автор: JackYF 1.2.2008, 14:33
Desmond, пользуйся кнопкой "Код".

Цитата(Desmond @  1.2.2008,  12:03 Найти цитируемый пост)
FILE *myfile=fopen(myfilename,"w+b");

кто будет проверять правильность открытия файла? 
Код

if (!myfile)
{
  ...
}

Автор: Desmond 4.2.2008, 08:34
Файл создается - появляется в директории, но он пустой

Автор: GrayCardinal 4.2.2008, 09:16
Desmond
В конце его надо закрыть (fclose) smile

Автор: Mayk 4.2.2008, 09:16
что такое REIS? Оно меньше 100 символов?

Автор: MAKCim 4.2.2008, 09:57
Цитата(GrayCardinal @  4.2.2008,  09:16 Найти цитируемый пост)
В конце его надо закрыть (fclose)

при завершении программы его закроет система

Автор: GrayCardinal 4.2.2008, 11:15
MAKCim
smile Дескриптор может и закроет, но файловый буфер никто "применять" не будет. Надо либо fflush, либо закрытие ...

Автор: Mayk 4.2.2008, 12:07
Цитата(GrayCardinal @  4.2.2008,  15:15 Найти цитируемый пост)
Дескриптор может и закроет, но файловый буфер никто "применять" не будет. Надо либо fflush, либо закрытие ... 

У топикстартера проблема иного рода --- у него прога вылетает предположительно при fprintf'е
Цитата(Desmond @  1.2.2008,  17:03 Найти цитируемый пост)
Но если запустить получившийся exe то выдается ошибка что в приложении обнаружена ошибка.

Так что что будет после fprintf'а не так счас и важно.

Автор: threef 4.2.2008, 18:57
ИМХО противненько записывать в W+B при помощи fprintf - блочный файл и строковая запись. Но я солидарен с
Mayk,  нужно проверить строковую длину REIS.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)