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

一个题.

2012-03-06 
一个弱弱的问题..#include stdio.hint main(int argc,int *argv[]){printf(%d\n,*argv[1])printf(%d

一个弱弱的问题..
#include <stdio.h>

int main(int argc,int *argv[])
{
printf("%d\n",*argv[1]);
printf("%d\n",*argv[2]);
printf("%d\n",*argv[3]);
return 0;
}
我在CMD下输入:a 1 4 6

怎么好像输出的是地址啊?该怎么办?

[解决办法]
你输出的是字符a,1,4的10进制
比如a = 0x61 = 97(D)

如果想输出参数
改为

C/C++ code
#include   <stdio.h> int   main(int   argc,int   *argv[]) {     printf("%s\n", argv[1]);     printf("%s\n", argv[2]);     printf("%s\n", argv[3]);     return   0; }
[解决办法]
int main(int argc,char *argv[]) 

printf("%c\n",*argv[1]); 
printf("%c\n",*argv[2]); 
printf("%c\n",*argv[3]); 
return 0; 


[解决办法]
C/C++ code
#include <stdio.h> int main(int argc,char *argv[]) { for (int i=0;i<argc;i++) {     printf("%s\n", argv[i]); }return   0; }
[解决办法]
应该是做了类型转换,系统传入的是char*,在main转成int*,但实际上还是char*
printf("%c\n", *((char*)argv[1]));
[解决办法]
#include <stdio.h>

void main(int argc,int *argv[])
{
printf("%s\n",argv[1]);
printf("%s\n",argv[2]);
printf("%s\n",argv[3]);

}

[解决办法]
那还不简单,把字符变成整数就是了,"%d"打印字符不行,但打印整数从来不出错的。
如果是单个的整数字符,减去字符'0'就可以变成相应的整数值,而如果是数字字符串,可以考虑使用sscanf或atoi等函数把它们转换成整数,然后再用"%d"控制输出。

热点排行