我编写了o程序,必须在inf循环中工作。在循环中,程序必须将一些数据保存到文件并关闭此文件。在循环中有一个睡眠功能,睡眠程序持续10秒。然后我想检查文件中的内容但它是空的。如果程序没有循环运行,一切正常
完整的代码非常庞大,因此我提供了一个简短的版本
main()
{
FILE* fp;
while(1)
{
fp=fopen(SAVE_FILE, "awt");
if(fp==NULL)
{
printf("Error while opening the save file \n");
}
fprintf(fp, "%s",'this is saved text');
fclose(fp);
sleep(10);
}
}
知道如何正确关闭此文件以便在睡眠功能时读取数据吗?
(这是在linux上运行)
答案 0 :(得分:1)
您的代码必须
int main()
{
FILE* fp;
while(1)
{
fp=fopen(SAVE_FILE, "at");
if(fp==NULL)
{
printf("Error while opening the save file \n");
}
else
{
fprintf(fp, "%s\n","this is saved text");
fclose(fp);
}
sleep(10);
}
}
您编写了要在'
之间保存的字符串。您必须使用"
作为字符串文字。
此外,您只能使用选项打开文件。
编译时应始终使用-Wall选项。 gcc会向您显示代码警告。
test.c:662:9: warning: format ‘%s’ expects argument of type ‘char *’, but argument 3 has type ‘int’ [-Wformat=]
fprintf(fp, "%s",'this is saved text');