天天看點

scanf和gets等需要注意的地方

我記得有人說scanf,printf,這種C類型輸入輸出不要和cin,cout C++類型輸入輸出混用。

這裡主要說說scanf,gets的一些細節。

scanf("%s",str);遇到空格,換行終止,将之前的字元(沒有空格,首部有空格則跳過)輸入到str,并從緩存中去除這些字元,現在,緩存從空格開始。

而gets(str)則輸入直到遇到換行,将除換行的所有字元包括空格輸入到str,并删除緩存中第一個換行。

另外注意這種情況:

輸入三個元素分别是:字元串“jkljjklnbjk",空格,字元'c'

scanf("%s",str);

scanf("%c",&a);

a得到的是空格。。