c++ ,main()带参数

来源:百度知道 编辑:UC知道 时间:2024/05/21 12:49:11
//===============================
// main()函数带参数参数为字符串在函数体为参数排序
// 输出屏幕 输出到xyz.txt中
//==============================
#include<iostream>
#include<fstream>

using namespace std;
//------------------------------
int main(int argc,char**argv)
{

for(int i=0;i<argc;i++) //冒泡法排序
for(int j=0;j<argc-i;j++)
if( strlen(argv[j])> strlen(argv[j+1]))
{
argv[argc]=argv[j];argv[j]=argv[j+1];argv[j+1]=argv[argc];
}

for( i=0;i<argc;i++)
cout<<argv[i]<<endl;

ofstream out("xyz.txt");
out<<cin;

return 0;
}
异常中止???

#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char **argv) {
int i;
for (i = 1; i < argc; i++)
for (int j = 1; j < argc - i; j++)
if (strlen(argv[j]) > strlen(argv[j + 1])) {
argv[argc] = argv[j];
argv[j] = argv[j + 1];
argv[j + 1] = argv[argc];
}
ofstream out("out.txt");
for (i = 1; i < argc; i++) {
cout << argv[i] << endl;
out.write(argv[i], strlen(argv[i]));
out.write("\n", 1);
}
out.close();
}

argv[argc]=argv[j];argv[j]=argv[j+1];argv[j+1]=argv[argc];

argv数组长度是argc,所以不带访问 argv[argc]的

另外你这个把argv[0]排进去了, 这个是可执行文件的名字, 不知道是不是符合你程序的需求