我写这段代码是为了输入用户的数字并将其输出到文件中。但它不起作用,运行代码后output.txt
文件仍然是空的。 请告诉我我哪里做错了. 我保证在运行程序之前我已经创建了output.txt
文件,因此 文件指针将不会NULL
。
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
FILE *ptr;ptr=fopen("output.txt","rw");
if(ptr==NULL){printf("Error in oppening file aborting .......");exit(0);}
char ch[100];
scanf("%s",ch);
fprintf(ptr,"%s",ch);
fclose(ptr);
return 0;
}
从fopen
文档中,支持的访问模式包括:
"r"读取:打开文件进行输入操作。该文件必须存在。
"w"写入:为输出操作创建一个空文件。如果文件具有 相同的名称已存在,其内容将被丢弃,并且文件 被视为新的空文件。
"a"附加:在文件末尾打开文件进行输出。输出 操作始终将数据写入文件末尾,展开文件。 重新定位操作(fseek、fsetpos、rewind(将被忽略。这 如果文件不存在,则创建该文件。"r+"读取/更新:打开文件 用于更新(输入和输出(。该文件必须存在。
"w+"写入/更新:创建一个空文件并打开它进行更新(两者 用于输入和输出(。如果同名文件已存在,则 内容将被丢弃,文件将被视为新的空文件。
"a+"追加/更新:打开文件进行更新(输入和输出( 所有输出操作都在文件末尾写入数据。 重新定位操作(fseek,fsetpos,rewind(会影响下一个 输入操作,但输出操作将位置移回 文件结尾。如果文件不存在,则创建该文件。
在你的代码中,你使用无效的"rw",这就是你的程序不起作用的原因。
将">rw"更改为"w",您的程序将正常工作。请注意,您不需要创建output.txt
,fopen
如果您的当前用户在程序目录中具有写入权限,它将为您创建它。