scanf函数中要指定数据在内存中存放的(问一问:scanf函数中要指定数据在内存中存放的)
1、个数。2、-------------int j,i;char s[20]; // s[3] 太短int k;k= scanf("%d%s%d",&i,s,&j);if (k==1) printf...
scanf函数中要指定数据在内存中存放的
1、个数。
2、-------------int j,i;char s[20]; // s[3] 太短int k;k= scanf("%d%s%d",&i,s,&j);if (k==1) printf("%d ",i);if (k==2) printf("%d %s",i,s);if (k==3) printf("%d %s %d",i,s,j);================如果输入12abc34 def78i 得到 12s 得到 abc34 , 空白是分隔符,但因s长度 只有 3,实际只能存放 2 个字符和一个字符串结束符,所以程序仍然会有错误发生。
3、j 不能读到 正确的数,因为 输入格式 %d, 而 def78 不是正确的 10进制数。
4、===def78 可以是16进制数,输入格式 要用 %xmain{ int j,i; char s[20]; // s[3] 太短int k;k= scanf("%d%s%x",&i,s,&j); if (k==1) printf("%d ",i);if (k==2) printf("%d %s",i,s);if (k==3) printf("%d %s %x",i,s,j);return 0;}输入 12abc34 def78输出 12 abc34 def78========最好养成习惯,输入数据用空白 明显地分开:12 abc 34另外,站长团上有产品团购,便宜有保证。