繁体   English   中英

如何使用 .txt 文件作为命令行输入,使其内容作为 C 中的命令行输入读取?

[英]How do I use a .txt file as a command line input in such a way that its contents are read as command line input in C?

我的程序要求我做一些二进制转换。 第一个 arg[0] 是文件名,arg[1] 指定转换类型,arg[2] 指定表示转换的位数,arg[3] 是十进制或二进制数,具体取决于转换。 我的工作是将此 .txt 文件用作命令行输入,以便我的 arg[] 是 .txt 文件的每个字符串一行一行。 我的.txt文件如下:

#!/bin/bash
./binary -d2b -8 12
./binary -d2b -8 127
./binary -d2b -8 128
./binary -d2b -8 255
./binary -d2b -8 300
./binary -d2b -16 300
./binary -d2b -32 300
./binary -d2b -16 32767
./binary -d2b -16 32768
./binary -d2b -64 300
./binary -b2d -8 101010
./binary -b2d -8 111100001
./binary -b2d -16 111100001
./binary -b2d -16 111100001111
./binary -b2d -16 1111000011110000
./binary -b2d -32 1111000011110011
./binary -b2d -32 111100001111000011110000
./binary -b2d -32 11111111111111111111111111111111
./binary -abc -8 101
./binary -b2d -9 101
./binary -b2d -8 121
./binary -d2b -8 1a1
./binary -d2b -8

如何使 .txt 文件的每一行都算作命令行输入中的 argv[] 参数?

我意识到这显然是一个家庭作业,但你似乎没有抓住重点,也许老师没有正确解释。

这个文本 ( .txt ) 文件是一个 Unix shell 脚本。 通常我们会为此类文件使用.sh扩展名。 您可以通过#! 在第一行。 该标记之后的文本告诉系统解释器用于解析和执行文件的其余内容。 在这种情况下,它指示它使用/bin/bash ,这通常是默认的 shell。

所以...只要这个文件是可执行的(例如chmod +x filename ),运行它(通过键入./filename )将执行一个名为binary的程序,其中argv[0]设置为binary并且后续索引设置为后续值。

如果您在当前目录中提供了一个名为binary的 C 风格的可执行文件,它将把argv参数中指定的参数传递给它的主函数。

暂无
暂无

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

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