下面是一个简单的代码,我希望创建SIZE.txt
,然后关闭它。它编译时没有错误,也没有警告,但不会创建文件。但是,在执行代码时会抛出分段错误。
感谢您提前提供的帮助。
#include "stdio.h"
void main() {
FILE *fp;
fp = fopen("SIZE.txt", "r+");
fclose(fp);
return;
}
失败的主要原因是将文件模式指定为"r+"
,它只会打开现有文件,而不会创建新文件。只有当"w+", "a"
或"a+"
被指定为文件模式时,才会创建文件。
检查这个,如果文件存在,它将是显示文件已经存在,但如果文件不存在,它会创建它,取决于你要做什么,ab+你可以改为w
FILE *fp;
fp = fopen("SIZE.txt", "r");
if(fp==NULL){
fp=fopen("SIZE.txt", "ab+");
printf("File was createdn");
}
else{
printf("File already existsn");
}
fclose(fp);
return 0;
更改:
#include "stdio.h"
至
#include <stdio.h>
此外,检查fopen()返回的NULL指针:
if ((fp = fopen("file.txt", "r")) == NULL) {
// Handle error...
}