帮帮忙啊,不明白交叉输入数据和字符数据时的输入方式!
假设有以下定义和输入语句:int a1 ,a2; char c1 c2;
sanf("%d%c%d%c",&a1,&c1,&a2,&c2);
正确输入数据:
10A∪20B<CR> (此处∪代表空格,<CR>代表Enter)
若用以下输入形式:
10∪A∪20∪B<CR>
则将把10赋予a1,把空格赋予c1,接着a2将遇到字母A,因此类型不匹配,虽然程序照常运行并且不报错,但是scanf函数将结束执行,使的a2和c2不能从终端接受数据.注意,字母A未被读入,留给下一个输入操作去读入.
我想问的问题是:在正确的输入形式下空格是被赋予了谁?为什么不赋予a2?