无法从终端在 C 编程中传递命令行参数
Cant pass command line arguments in C programming from the terminal
我正在尝试从终端传递两个命令行参数用于倒计时程序,例如:
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char* argv[]){
int disp, count;
if(argc < 2){
printf("You mush enter the length of the count \n on the the command line. Try again.\n");
exit(1);
}
if(argc == 3 && !strcmp(argv[2], "display")) disp = 1;
else disp = 0;
for(count = atoi(argv[1]); count; count--)
if(disp) printf("%d\n", count);
putchar('\a');
printf("Done.");
return 0;
}
在命令行中,我编译为,>$cc countdown.c 4 display
它抛出一个编译错误说:
clang: error: no such file or directory: '4'
clang: error: no such file or directory: 'display'
我什至试过输入双引号,但错误是一样的。
有关详细信息,我的 ,cc --version
是这样的:
Apple clang version 13.0.0 (clang-1300.0.29.3)
Target: arm64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
您需要先编译然后 运行。它们是两个独立的步骤。
cc -o countdown countdown.c
./countdown 4 display
第一个命令将 C 代码编译成 countdown
二进制文件。假设成功,第二个命令 运行s 具有所需参数的二进制文件。
我正在尝试从终端传递两个命令行参数用于倒计时程序,例如:
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char* argv[]){
int disp, count;
if(argc < 2){
printf("You mush enter the length of the count \n on the the command line. Try again.\n");
exit(1);
}
if(argc == 3 && !strcmp(argv[2], "display")) disp = 1;
else disp = 0;
for(count = atoi(argv[1]); count; count--)
if(disp) printf("%d\n", count);
putchar('\a');
printf("Done.");
return 0;
}
在命令行中,我编译为,>$cc countdown.c 4 display
它抛出一个编译错误说:
clang: error: no such file or directory: '4'
clang: error: no such file or directory: 'display'
我什至试过输入双引号,但错误是一样的。
有关详细信息,我的 ,cc --version
是这样的:
Apple clang version 13.0.0 (clang-1300.0.29.3)
Target: arm64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
您需要先编译然后 运行。它们是两个独立的步骤。
cc -o countdown countdown.c
./countdown 4 display
第一个命令将 C 代码编译成 countdown
二进制文件。假设成功,第二个命令 运行s 具有所需参数的二进制文件。