есть программа на си
при отладке выдается ошибка:
programm: d:\visual studio…
File: f:\dd\vctools\crt_bld\self_x68\crt\src\fgets.c
Line: 57
Expression: (str!=NULL)
нужный фрагмент кода выглядит так:
char buff[800];
void main (void)
{
FILE*input;
input=fopen(name,"r");
while(fgets(buff,800,input)>0) poisk();
…
кто-нибудь знает как это можно исправить? подскажите пожалуйста….
13 мая 2009 в 19:05
fgets Return Value
Each of these functions returns str. NULL is returned to indicate an error or an end-of-file condition
значит while(fgets(buff,800,input)!=NULL) poisk();
11 мая 2009 в 23:02
помогло, спасибо)))
11 мая 2009 в 23:01
А если так?
void main () {
FILE*input;
input=fopen(name,"r");
cout << fgets(buff,800,input);
cout << "OK";
fclose(input);
}
Т.е. прочитать только одну строку
11 мая 2009 в 23:00
существует
11 мая 2009 в 23:00
Глупый вопрос – а где определяется и задается значение переменной name?
И согласно справки на fopen
==============
Return Value
If the file has been succesfully opened the function will return a pointer to a FILE object that is used to identify the stream on all further operations involving it. Otherwise, a null pointer is returned.
==============
не вижу проверки возвращаемого значения
11 мая 2009 в 23:00
char name[]="C:\\id.cpp";
проверку ужесделал, но ничего не поменялось…
11 мая 2009 в 22:05
А файл кстати существует?
11 мая 2009 в 22:05
не помогает, да и при первом вызове этой функции буфер должен иметь размер всего в 21 char…