我有一个读取和反向编码赋值,我需要传递一个文本文件和一个字符(-L
或-W
),具体取决于操作符是否需要按行反向返回的文本文件或用文字。 (我还应该注意,分配要求在代码期间不要求用户提供任何内容。必须在命令行中确定需要哪个变体。)
我不需要帮助代码来反转行或单词,但需要帮助理解如何接收字符和文本文件,然后在代码中使用它们。我已尝试在(int argc, char *argv[])
上使用参数main
,但只要我尝试传入-L
终端,就会显示Command not found
或clang: error: argument to '-L' is missing (expected 1 value)
< / p>
此外,当我的老师将文本文件传递给程序时,他经常使用>
。有人可以解释如何使用它吗?
实施例。 program.c > hello.txt
然后他最终会在程序中使用.txt
。
答案 0 :(得分:0)
考虑一下:
program -L < data.txt
或
program -W < data.txt
或
cat data.txt | program -L
“-L”或“-W”将位于argv[1]
。
答案 1 :(得分:0)
传递命令行争论的想法如下
Argc :传递执行的“字符串”(参数)的参数计数器数量。 它总是为1或更大,因为函数的调用是一个参数。
Argv :参数向量(指针),是指向命令行接收的每个参数的指针
程序调用的示例:
./ myprogram -w
的argc = 2
argv将有两个指向字符串的指针(char):
argv [0] =“./myprograms”
argv [1] =“ - w”
现在解决您的问题
通过命令行排除程序时,您可以选择以下方法:
1)其中一个是给程序输入一个文件(该文件将逐个字符地传递给以EOF结尾的标准输入或-1-不是ascii字符 - ) 这些可以通过以下方式完成
./ program.c&lt; hello.txt的
2)将程序的输出重定向到文件
./ program.c&gt; hello.txt的
您要做的是在传递参数时输入文件,这可以通过以下方式完成
./program.c < hello.txt -L
重要:“&lt; hello.txt”不会作为参数计算,因此对于这种情况,argc和argv将是以下情况
的argc = 2
的argv [0] = “./ program.c”
的argv [1] = “ - L”
如果您需要更多帮助或有些不明确的话,希望这有助于评论。祝你的课程顺利!