C语言求教: 有一个txt文件,要求从stdin读入,是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/06/17 17:01:51
有一个文件,被要求读入内存中,然后逐个字符的处理,但要求从stdin读入,我有点搞不懂了,stdin不是键盘吗,怎么可能把一个文件的内容变成stdin?
是不是从键盘输入文件的名称?
求教各位了。

stdin
是标准输入
这个不一定是键盘 可以重定向的

我个人理解是 用管道 echo xx.txt | p.exe
不过。。。怎么看你都像是用windows的 不知道cmd能用|不。。。
如果你说的是在linux下面
我说的就是完全合情合理 天经地义的 解答

不管是什么系统
你直接fread(stdin, xx);
记得加上#include <stdio.h>
stdin是C标准库里面的一个全局变量

至于到底stdin的东西从那来就先不管
反正是安要求从stdin来
而且也应该这样做

你的程序只管从stdin读数据 然后处理就行了

stdin也是FILE*类型的,只不过一般表示从键盘输入
类似的还有FILE* stdout,一般表示输出到屏幕
还有一个FILE* stderr,也是输出到屏幕,不过是显示的错误消息

而平时在文件操作的时候,一般定义成FILE*类型的变量表示文件
因此在使用FILE*类型作为参数的地方,可以使用stdin,stdout,stderr

stdin是输入缓存的意思
FILE *fp;
fp = freopen("data.txt", "r", stdin);
fgets(buf, sizeof(buf), stdin);

FILE *pst ;
char p[1000];
pst=fopen("c:/abc.txt","w+");
fread(p,1000,1,stdin);
fwrite(p,strlen(p)+1,1,pst);