关于C语言中的FILE

来源:百度知道 编辑:UC知道 时间:2024/06/28 17:49:30
#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中允许)

在c语言中变量必须一次性全部声明,
而c++则不必,可以随时声明变量

fgets()的第一个参数要是一个固定长度的缓冲区
比如5、6行改成
char in[10];//这里声明你需要大小的字符数组
fgets(in, 100, px);

你不能用指针,从文件中读取的值不能付给指针

in指针指向哪里?