|
60鱼币
本帖最后由 超神奇葩天才 于 2022-10-20 12:21 编辑
#include<stdio.h>
main()
{
int x1,x2;
char y1,y2;
scanf("%2d%3d%3c%c",&x1,&x2,&y1,&y2);
printf("x1 = %d,x2 = %d,y1 = %c,y2 = %c\n",x1,x2,y1,y2);
}
输入:
9876543210
输出:
x1 = 98,x2 = 12851,y1 = 4,y2 = 1
x2为啥输出12851?
本帖最后由 jackz007 于 2022-10-20 13:01 编辑
错在 "%3c" ,字符输入不可指定域宽,写成 "%*c%*c%c" 就对了
- #include<stdio.h>
- main(void)
- {
- int x1 , x2 ;
- char y1 , y2 ;
- scanf("%2d%3d%*c%*c%c%c" , &x1,&x2,&y1,&y2) ;
- printf("x1 = %d , x2 = %d , y1 = %c , y2 = %c\n",x1,x2,y1,y2) ;
- }
复制代码
编译、运行实况:
- D:\[00.Exerciese.2022]\C>g++ -o x x.c
- D:\[00.Exerciese.2022]\C>x
- 987654321
- x1 = 98 , x2 = 765 , y1 = 2 , y2 = 1
- D:\[00.Exerciese.2022]\C>
复制代码
|
最佳答案
查看完整内容
错在 "%3c" ,字符输入不可指定域宽,写成 "%*c%*c%c" 就对了
编译、运行实况:
|