在dev c++写完c之后在我想要命令行输入,但是在此之前程序就结束了
#include<stdio.h>
int main(int argc,char *argv[])
{
while(argc--){
char c;
while(c=*(*argv)++)
putchar(c);
printf("\n");
}
return 0;
}
我尝试直接在dos中打开 main.exe但是无济于事
dos窗口执行,例如: main.exe "hello" "world"
运行exe文件后面带上参数,每一个参数以空格隔开
请看:https://blog.csdn.net/fwb330198372/article/details/82345633
有帮助的话采纳一下哦!
在这里的参数在命令行是不能输入的,要执行的时候一起输入
1种是在dev里面设置好参数
2种在cmd里面运行dos窗口,然后传入 main.exe "aa" "bb"
上面那个dos打开执行main看起来也有点错误,应该有exe路径输出,第一个参数是这个。 确定是在dos里面运行程序了?
直接在dos里面找到程序,手动执行的时候指定参数,测试效果:
#include <iostream>
#include <stdio.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc,char *argv[])
{
printf("argc = %d\n", argc);
//argv[0] 表示的可执行程序的名字 从[1] 开始表示输入参数
int i;
for(i = 0; i < argc; i++)
{
printf("argv[%d] = %s\n", i, argv[i]);
}
return 0;
}
int main(int argc, char *argv[])
{
while (argc--)
{
// puts(*argv); //直接输出参数字符串
char c; //逐字符输出
while (c = *(*argv)++)
putchar(c);
printf("\n");
argv++;// 你代码缺这一句
}
return 0;
}
你这个代码visual studio支持,dev cpp里命令行参数不是连在一起存放,要改下,如:
#include<stdio.h>
int main(int argc, char *argv[])
{
for (int i = 0; i < argc;i++) {
char c;
char *p = argv[i];
while (c = *p++)
putchar(c);
printf("\n");
}
return 0;
}
另外dev cpp也可以传递参数,参考下图设置:
int main(int argc, char *argv[])
{
while (argc--)
{
// puts(*argv); //直接输出参数字符串
char c; //逐字符输出
while (c = *(*argv)++)
putchar(c);
printf("\n");
argv++;// 你代码缺这一句
}
return 0;
}
可以修改makefile,自己写个run
c语言中命令行参数argc,argv[]详解
https://blog.csdn.net/qq_42955211/article/details/112846066