因此,我了解要阅读并打印一行文本,您可以只使用printf
,scanf
并键入它。但是,如果我想打印一个文本文件而不在终端中键入它们怎么办?我并不是说使用fopen(filename, "r")
只能打开特定文件。我认为这称为重定向,但是我在理解它时遇到了麻烦。如下面的输入示例所示:
./myprogram < input.txt
答案 0 :(得分:1)
这里是redirection cheat sheet。我们感兴趣的行是:
cmd < file
:将文件的内容重定向到cmd的标准输入(stdin)。
下面是一个简单的示例,它将打印您的input.txt
文件的内容。与手动输入相比,该程序永远不会等待,并且会一直循环直到到达文件末尾(注意:在某些情况下,该末尾没有结束,您可能想添加替代的中断条件)。
#include <stdio.h>
int main(void)
{
char buffer[100];
while (fgets(buffer, 100, stdin))
printf("%s", buffer);
return (0);
}
./myprogram < input.txt
将打印您的input.txt ./myprogram
将等待您的手动输入并打印您刚刚输入的内容。答案 1 :(得分:0)
这与您要求的不完全相同,但是您可以将文件名作为参数,并将其放入argv [1],然后使用fopen