繁体   English   中英

如何使用C语言中的文件使用输入重定向?

[英]How do you use input redirection from a file in C?

我是编码的初学者,C是我一直学习的唯一语言。 我已经对文件的输入重定向进行了深入研究,以试图弄清楚它是如何工作的,但是我不知道该命令在哪里使用或确切地如何使用。 我的问题是,我应该在哪里将重定向命令行准确地放在程序中? 我知道它看起来像这样:./a <filename.txt,但是我不知道将它放在程序中的什么位置,或者甚至不在程序中? 我想使用一个简单的循环将文件中的数据读取到scanf中。 另外,“ a”是您正在编写的C程序的确切名称吗?

如果要从重定向读取,则程序需要从stdin读取:

int main(void)
{
    char line[1024];

    fgets(line, sizeof line, stdin);

    puts(line);

    return 0;
}

如果您像这样执行程序:

$ ./readline

然后用户必须输入文本并按ENTER键

如果您像这样执行程序:

$ echo "Hello World" | ./readline
Hello World
$ ./readline < filename
First line of filename

然后将stdin连接到管道/重定向。 您不必为此担心,执行命令的shell会完成工作(将stdin连接到管道等),因此您的程序仅需要从stdin读取。

同样的事情也适用于stdout ,如果您希望用户调用程序并在管道或重定向中使用输出,则只需将其正常写入stdout 外壳负责将stdout连接到管道/重定向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM