[英]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.