2010-10-11 112 views
0


如何使用C程序读取命令行输入。
通过命令行输入,我不是指命令行参数!如何使用C程序读取命令行输入

例如: *我有一个文本文件'inputfile.txt'与几行名称。
*假设我的程序名是names.exe。
* I必须运行使用利用以下命令视窗的命令行程序:
C:> names.exe < inputfile.txt

感谢。

回答

3

这就是重定向标准输入,所以在你的程序中你根本不做任何特别的事 - 你只需从标准输入读取数据并写入标准输出。如果用户重定向了这些,那就这样吧。

+0

谢谢杰里。你的回答让我意识到该怎么做。 – 2010-10-11 17:45:33

+0

我刚刚使用scanf,或得到。那是我想要的。 – 2010-10-11 17:47:51

+3

相信我,'得到'是*不*你想要的 - 永远。 'scanf'没问题,但是即使当你从标准输入读取数据时,你也想使用'fgets'而不是'gets' - 并且让你指定一个文件,它可以让你指定缓冲区的大小你正在阅读。使用'gets',您无法将数据限制为您分配的空间量。 – 2010-10-11 18:08:33

4

阅读从stdinFILE*

+0

我想从文件读取,我必须使用文件名作为参数。但我描述的方式是不同的。命令行将该文件的内容发送到names.exe程序。 – 2010-10-11 17:24:27

+2

我想你需要重读我写的东西。 – 2010-10-11 17:25:08

+0

可能你是对的,但我从Jerry Coffin的回答中了解了这个想法。谢谢。 – 2010-10-11 17:44:48

0

对于您的示例,输入将出现在标准输入上。只需使用freadfgets即可。

+0

谢谢,我要去试试。 – 2010-10-11 17:24:51

1

指示系统用文件描述符替换标准输入文件描述符为inputfile.txt。所以只需像标准一样从标准输入读取。