大众信息网

关于C语言中的FILE

关注:160  答案:5  手机版
解决时间 2021-02-07 22:51
#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行就是申明了个文件指针,会影响 望各位高人指点
最佳答案
(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中允许)
全部回答
in指针指向哪里?
你不能用指针,从文件中读取的值不能付给指针
fgets()的第一个参数要是一个固定长度的缓冲区 比如5、6行改成 char in[10];//这里声明你需要大小的字符数组 fgets(in, 100, px);
在c语言中变量必须一次性全部声明, 而c++则不必,可以随时声明变量
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!