Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
char*fgets(char*str,int n,FILE*stream)_C - Fatal编程技术网

char*fgets(char*str,int n,FILE*stream)

char*fgets(char*str,int n,FILE*stream),c,C,我知道这个函数是如何工作的。我知道stdin经常被用作*流。这是一个相当有趣的问题,但是除了stdin,还有什么函数可以用于输入吗?首先,您使用stdin不是作为*stream而是stream,因为stdin被声明为 FILE *stdin; 其次,stdin不是一个函数,而是一个对象——一个指向描述开放流的不透明结构的指针;或者正如名字所说,一个打开的文件stdin的特殊之处在于,在程序中,它默认连接到交互式输入,即使用键盘键入的任何内容 虽然在执行main之前,stdin是一个很容易提供给

我知道这个函数是如何工作的。我知道
stdin
经常被用作
*流
。这是一个相当有趣的问题,但是除了
stdin
,还有什么函数可以用于输入吗?

首先,您使用
stdin
不是作为
*stream
而是
stream
,因为
stdin
被声明为

FILE *stdin;
其次,
stdin
不是一个函数,而是一个对象——一个指向描述开放流的不透明结构的指针;或者正如名字所说,一个打开的文件
stdin
的特殊之处在于,在程序中,它默认连接到交互式输入,即使用键盘键入的任何内容

虽然在执行
main
之前,
stdin
是一个很容易提供给程序的输入流,但您可以使用
fopen
功能打开更多的流:

FILE *a_file = fopen("myinput.txt", "r");
将打开进程当前工作目录中的文件
myinput.txt
进行读取,并返回一个指向描述字节流结构的指针;调用
fgets(…,一个_文件)现在将从开始读取所述文件的连续行

读取后,必须使用
fclose(a_流)关闭流