Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.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
C 关于K&R的问题-重定向输入_C - Fatal编程技术网

C 关于K&R的问题-重定向输入

C 关于K&R的问题-重定向输入,c,C,在“C编程语言”K&R的第1.6节中,有一个示例程序,作者声明: The output of this program ON ITSELF is digits = 9 3 0 0 0 0 0 0 0 1, white space = 123, other = 345 还有很多类似的项目,包括练习。我了解所有关于代码逻辑的内容,并且可以做这些练习,但是我如何在一个文件上测试我的程序,比如作者或网络上的许多其他人 编辑:问题应该是:如何将文件输入重定向到程序?这是使用重定向。程序的输入不是

在“C编程语言”K&R的第1.6节中,有一个示例程序,作者声明:

The output of this program ON ITSELF is
    digits = 9 3 0 0 0 0 0 0 0 1, white space = 123, other = 345
还有很多类似的项目,包括练习。我了解所有关于代码逻辑的内容,并且可以做这些练习,但是我如何在一个文件上测试我的程序,比如作者或网络上的许多其他人


编辑:问题应该是:如何将文件输入重定向到程序?

这是使用重定向。程序的输入不是来自键盘,而是来自文件

在DOS提示下:-

C:>myexe 使用命令shell进入Windows中的DOS提示符。或者开始跑步。。然后输入cmd


在Mac电脑上,这被称为终端类型终端进入探照灯以到达它。

这是使用重新定向。程序的输入不是来自键盘,而是来自文件

在DOS提示下:-

C:>myexe 使用命令shell进入Windows中的DOS提示符。或者开始跑步。。然后输入cmd


在Mac上,这被称为终端类型终端进入探照灯以到达它。

第1.6章中的程序从stdin读取输入。要使其从文件中读取,您可以在大多数操作系统上通过如下方式运行程序将stdin重定向为文件:

myprogram < somefile
./a.out < test_input
在windows上,您将使用type程序而不是cat


第1.6章中的程序从stdin读取输入。要使其从文件中读取,您可以在大多数操作系统上通过如下方式运行程序将stdin重定向为文件:

myprogram < somefile
./a.out < test_input
在windows上,您将使用type程序而不是cat


默认情况下,您的程序将从stdin获取输入,默认情况下,stdin是一个基于键盘输入填充的缓冲区。但是,您也可以告诉您的程序从文本文件中填充stdin

使用基于*nix的系统,您只需创建一个文本文件,并将其保存为您想要的任何内容,例如测试输入。用您希望传递给程序的输入填充它,保存它,然后按如下方式运行程序:

myprogram < somefile
./a.out < test_input
您可以使用ofstream输出到文件


注意,IFS流和OFFROW是C++对象,不能在C中使用。虽然可以在C中写入文件并从文件中读取,但这比简单地替换CUT和CIN的所有实例稍微复杂一些。实际上,您必须考虑您正在读和写什么:

默认情况下,您的程序将从stdin获取输入,默认情况下,它是一个基于键盘输入填充的缓冲区。但是,您也可以告诉您的程序从文本文件中填充stdin

使用基于*nix的系统,您只需创建一个文本文件,并将其保存为您想要的任何内容,例如测试输入。用您希望传递给程序的输入填充它,保存它,然后按如下方式运行程序:

myprogram < somefile
./a.out < test_input
您可以使用ofstream输出到文件


注意,IFS流和OFFROW是C++对象,不能在C中使用。虽然可以在C中写入文件并从文件中读取,但这比简单地替换CUT和CIN的所有实例稍微复杂一些。实际上,你必须思考你在读什么和写什么:

我不知道你在问什么。你是在问如何编译和运行一个C程序吗?这对你有什么意义吗?本书假设您正在CLI中工作。在GUI中工作会带来更多的挑战,与C语言无关。您可能希望将系统设置为易于在CLI环境中工作。所示示例使用getchar从输入中读取字符,执行一些操作,然后使用putchar打印字符。作者说他使用了一个实际的文件,从中他得到了字符,并采取了明确的行动。我也在问我怎么做,因为我不知道怎么做。我认为这与操作系统有关,而不是C语言。这是重定向而不是争论。我不知道你在问什么。你是在问如何编译和运行一个C程序吗?这对你有什么意义吗?本书假设您正在CLI中工作。在GUI中工作会带来更多的挑战,与C语言无关。您可能希望将系统设置为易于在CLI环境中工作。所示示例使用getchar从输入中读取字符,执行一些操作,然后使用putchar打印字符。作者说他使用了一个实际的文件,从中他得到了字符,并采取了明确的行动。我也在问我怎么做,因为我不知道怎么做。我认为这与操作系统有关,而不是C语言。这是重定向,而不是参数汉克斯我的程序注意:你真的不应该使用cat或类似的类型,除非你的shell不支持文件重定向;看+谢谢你的回答和解释,阿拉斯穆森。谢谢你的回答和解释,阿拉斯穆森。