问题描述
- C语言fprintf和fscanf问题
-
这段代码是为了打开一个文件,用fprintf输入字符串,在用fscanf返回,最后看fscanf的返回值。但是这段程序一运行就出错,猜测是指针访问问题,但是不明白原理。请大家帮忙看下,谢谢!
出错提醒是:0xCDCDCDCD 处有未经处理的异常(在 ConsoleApplication1.exe 中): 0xC0000005: 执行位置 0xCDCDCDCD 时发生访问冲突。代码如下
#include
#includeint main(void)
{
char filename[20]="e:abc.txt";
FILE*fp;
int n;
char str[20]="yes";
if((fp=fopen(filename,"w"))==NULL) perror("open error");
fprintf(fp,"%s",str);
n=fscanf(fp,"%s",str);
printf("%d",n);
fclose(fp);
return 0;
}
解决方案
0xCDCDCDCD
看到这个数字,想都不要想,肯定是没有正确分配内存。
解决方案二:
你在文件打开失败时应该结束程序而不是继续读取,比如打开失败执行一个exit函数。打开失败可能是你没有写文件后缀名
解决方案三:
打开方式的问题!!!!!!!!!!!!!!!!
时间: 2024-11-03 05:08:22