点击链接加入我的朋友圈

MENU

c遇回车空格需谨慎--再记忆

June 9, 2020 • Read: 176 • 折腾

for(int i = 0;i<10;i++)
    for(int j = 0;j<2;j++)
    scanf("%c",&a[i][j]);

看到上面的例子,你会怎么输入呢?
abcdefghij1234567890 还是a b c d e f g h i j 1 2 3 4 5 6 7 8 9 0

为什么说再记忆呢...因为以前发过对scanf的探究..
历史

对于字符来说,这样的输入不需要空格!

scanf (“% c",&a);// 就有问题了,会把回车也读进去,解决方法 1. 加个过滤掉回车的条件 ASCII..2. 自己加
sacnf 的分隔符

之前说的这个还不完全,按上面的例子,我们输入了20个字符后,回车,下面经过漫长的操作,直到一个scanf("%c",&b);,那么恭喜你,你之前的回车直接被读入了...

所以这提高一个更加方便的操作

for(int i = 0;i<10;i++)
    for(int j = 0;j<2;j++)
      scanf("%c",&a[i][j]);
...
....
// 防止空格键入 
getchar();
scanf("%c",&b);

getchar也将帮你过滤掉空格!

Archives QR Code Tip
QR Code for this page
Tipping QR Code