文件小问题
本帖最后由 老牛来学习 于 2020-7-6 17:10 编辑我已创建文本文件a.txt并且里面有字符,想用fgets将字符串读取到temp字符串中,为什么会报错啊?试过如果文件为空就能执行是为什么
补充:刚刚又试了一下用数组就没问题了。为什么,这里指针和数组有啥区别。
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
char *temp = "123";
if((fp = fopen("a.txt","r"))!=NULL)
{
fgets(temp,10,fp);
}
else
{
printf("文件打开失败");
}
printf("%s",temp);
fclose(fp);
} 1,字符数组是存放多个字符的数据结构,而指针只是存放一个地址的变量,这俩不能相互替换。
2,文件为空的话,啥都读不出来,当然不会报错。
兄弟fopen“r”是只读模式,你现在是写入,用“w”,追加用“aw” temp 为字符串常量,为不可变内容。请使用
char buf = {0};
或者
char* buf = (char*)malloc(sizeof(char) * 1024); 4L 正解
页:
[1]