首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

输入带参数的主函数编译运作后,无法运行新的程序,

2012-07-03 
输入带参数的主函数编译运行后,无法运行新的程序,急!#include iostreamusing namespace stdint main(in

输入带参数的主函数编译运行后,无法运行新的程序,急!
#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;} 

热点排行