输入带参数的主函数编译运行后,无法运行新的程序,急!
#include <iostream>
using namespace std;
int main(int argc,char *argv[]){
cout<<"argv[0]="<<argv[0]<<endl;
cout<<"argv[1]="<<argv[1]<<endl;
cout<<"argv[2]="<<argv[2]<<endl;
cout<<"argv[3]="<<argv[3]<<endl;
return 0;
}
昨晚在写了这个程序之后,编译之后,输入参数:./a.out a b c; 然后运行:
argv[0]=./a.out
argv[1]=a
argv[2]=b
argv[3]=c
到这里还是正常的, 但是今早在写了一个新的程序之后:
#include <iostream>
using namespace std;
char *max(char *a,char *b){
if(strcmp(a,b)>=0 return a;
else return b;
}
int main(){
char *p[5]={"John","Lisa","Tom","Lily","Ann"};
char *str=p[0];
for(int i=1;i<5;i++)str=max(str,p[i]);
cout<<"最大字符串为: "<<endl;
puts(str);
return 0;
}
编译是没有问题的,但是在输入./a.out运行时就出现:argv[0]=./a.out.(还是显示旧的程序运行命令)
无法编译新的程序了,请问各位大牛,是什么原因导致,以及如何解决这个问题?
[解决办法]
你的编译是没法通过的,不会生成a.out文件,所以你运行的是昨天的a.out
我修改了一下
- C/C++ code
#include <iostream>#include <cstring>#include <cstdio>using namespace std;char *max(char *a,char *b){if(strcmp(a,b)>=0) return a;else return b;}int main(){char *p[5]={"John","Lisa","Tom","Lily","Ann"};char *str=p[0];for(int i=1;i<5;i++)str=max(str,p[i]);cout<<"最大字符串为: "<<endl;puts(str);return 0;}