在写题时发现在进行n次循环的时候每次循环需要输入一组数据并以回车结尾(或者数据中有空格)如果需要用char来输入判断。
那么问题来了,可以直接scanf(“%c”,&ch)吗?
不行。因为%c会识别所有字符,包括回车和空格。如果十次循环,每次输入“h”,因为有空格或者回车来表示十次循环,所以ch会输出5次h,五次空格或回车。
解决方法:在输入ch后加一个getchar(),这样就可以把多余的空格回车给吃掉,但是一个getchar()只吃一个空格或者回车。
因此,最保险的办法是用string输入,或者cin>>ch;(因为scanf输入字符后会保留一个空格或者换行 如果接下来输入字符 则将该字符赋值于字符或者换行。cin则无)
scanf(“%c%c%(星号)c”,&a,&b);
%(星号)c可以跳过一个变量,不接收(可以跳过空格回车)
//不知道为什么星号打不出来,就用拼音吧
不错,但是如果出题人在数据后加了个空格,并且回车了,怎莫解决捏
getchar()还可以改成cin.get().
cin.get()可以说是getchar()的C++版本