关于C语言中的FILE
答案:5 mip版
解决时间 2021-02-07 22:51
- 提问者网友:祇為焄菂兲哋閤
- 2021-02-07 16:29
#include<stdio.h>
void main()
{
1: FILE *fp;
2: int a;
3: FILE *px;
4: px氦川份沸莓度逢砂抚棘 = fopen("c:\\ds\\test.txt","r");
5: char *in;
6: in = fgets(in,100,px);
}
这段代码很奇怪
一直不能运行,说会创建什么错误,
如果我把第5行去掉,就能正确运行
奇怪啊
第5行就是申明了个文件指针,会影响
望各位高人指点
最佳答案
- 二级知识专家网友:萌逗
- 2021-02-07 17:33
(TC2.0)C语言里面,有种约定,所有变量要先声明才能使用,声明变量时,应该将所有要用到的变量 连续 在一个地方声明.不能声明一部分变量,执行一些代码,发现变量不够,再在代码的后面声明变量.这种做法不允许.
楼主的
1: FILE *fp;
2: int a;
3: FILE *px; 4: px = fopen("c:\\ds\\test.txt","r");
5: char *in;
6: in = fgets(in,100,px);
这段代码显然不全理.
应将5: char *in;
放到第4(: px = fopen("c:\\ds\\test.txt","r"); )行前面声明.
声明区专门声明,代码区专写代码.
(不过VC中允许)
楼主的
1: FILE *fp;
2: int a;
3: FILE *px; 4: px = fopen("c:\\ds\\test.txt","r");
5: char *in;
6: in = fgets(in,100,px);
这段代码显然不全理.
应将5: char *in;
放到第4(: px = fopen("c:\\ds\\test.txt","r"); )行前面声明.
声明区专门声明,代码区专写代码.
(不过VC中允许)
全部回答
- 1楼网友:反正我最可爱
- 2021-02-07 22:03
in指针指向哪里?
- 2楼网友:我心里的你没人能代替
- 2021-02-07 21:19
你不能用指针,从文件中读取的值不能付给指针
- 3楼网友:选择重头再来
- 2021-02-07 20:13
fgets()的第一个参数要是一个固定长度的缓冲区
比如5、6行改成
char in[10];//这里声明你需要大小的字符数组
fgets(in, 100, px);
- 4楼网友:众里寻春风
- 2021-02-07 19:00
在c语言中变量必须一次性全部声明,
而c++则不必,可以随时声明变量
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯