嗨,在下面的简单程序中发生了一些非常奇怪的事情.该程序采用2位数的ASCII数字,因为我只需要读取数字,"@"符号和"." 符号.并找出这个字节的ASCII符号是什么.
int main(int args, char* argv[])
{
unsigned int ch;
char aux[256];
strcpy(aux,argv[1]);
char a[0];
char buff[50];
char result[512];
int i=0;
while(i lessThan strlen(argv[1]))
{
a[0]=aux[i];
a[1]=aux[i+1];
a[2]='\0';
ch = atoi(a);
printf("el int:%d \n",ch);
sprintf(buff,"%c",ch);
printf("el char: %s \n", buff);
i=i+2;
}
}
Run Code Online (Sandbox Code Playgroud)
好的,这是有效的,并且在变量buff中以正确的方式打印所有ASCII符号.但是你可以看到我有一个char[]从未使用过的被叫结果.所以我删除它.当我再次运行程序时,我得到了不同的结果:O.由于某种原因,该程序不会读取'.' 字符了:(为什么????请有人解释我,我很害怕哈哈!
我的结果与变量结果声明:
./try3 494650526450
el int:49
el char: 1
el int:46
el char: .
el int:50
el char: 2
el int:52
el char: 4
el int:64
el char: @
el int:50
el char: 2
Run Code Online (Sandbox Code Playgroud)
我的结果与变量结果声明:
./try3 494650526450
el int:49
el char: 1
el int:0
el char:
el int:50
el char: 2
el int:52
el char: 4
el int:64
el char: @
el int:50
el char: 2
Run Code Online (Sandbox Code Playgroud)