对于赋值,我需要为我的C程序提供命令行参数.我之前使用argc/argv(在C++中)没有遇到麻烦,但我不确定C样式字符串是否会影响它的工作原理.这是我的主要开始:
int main(int argc, char *argv[]){
if(argc>1){
printf("0 is %s, 1 is %s\n",argv[0],argv[1]);
if(argv[1]=="-e"){
// Do some stuff with argv[2]
system("PAUSE");
}
else{
printf("Error: Incorrect usage - first argument must be -e");
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
所以我将我的程序称为"program.exe -e myargstuff"但是我得到了"Error:Incorrect Usage ..."输出,即使我的printf()告诉我argv [1]是"-e".请帮忙吗?谢谢!
jgo*_*ula 16
这条线
if(argv[1]=="-e"){
Run Code Online (Sandbox Code Playgroud)
比较指针,而不是字符串.改为使用strcmp函数:
if(strcmp(argv[1],"-e")==0){
Run Code Online (Sandbox Code Playgroud)
更改:
if(argv[1]=="-e"){
Run Code Online (Sandbox Code Playgroud)
至
if(strcmp(argv[1], "-e") == 0){
Run Code Online (Sandbox Code Playgroud)
并包括string.h.