天天看點

C/C++輸入輸出,函數差別

c++:

    1).cin.get()不會讀取換行符,換行符還在輸入流中

    2).cin.getline()會讀取換行符,并把換行符從輸入流中丢掉

    3).cin.get()讀取空行後将設定失效位(failbit),意味接下來的輸入将被阻斷關閉輸入 (注:隻讀取到換行符的時候,意味讀取到空行,可以使用cin.clear()指令恢複);

    4).當輸入行包含的字元數比指定的多時,cin.getline()會設定失效位(failbit),并關閉輸入

    5).當cout後跟的是字元型的指針的時候,将列印的是該指針所代表的内容而不是指針的位址(char * 特殊),如果要列印該指針的位址需用(int * )轉換

 6)當cin讀入的資料與目标變量不一緻時将會出現以下四種情況:(cin不讀取換行符以及空白字元)

       a).目标變量的值不變

       b).不比對的輸入繼續留在輸入流中

       c).cin的調用将傳回一個false

       d).設定失效,阻斷接下來的輸入(可以使用cin.clear()指令恢複)

c:

    1).gets()從stdin流中讀取字元串,直至接受到換行符或EOF時停止,(不會限定讀取多少)

             換行符不作為讀取串的内容,讀取的換行符被轉換為null值,并由此來結束字元串

    2).scanf("%s",&s)就是如果輸入了空格會認為字元串結束,空格後的字元将作為下一個輸入項處理,

          (不會限定讀取多少,也不會讀取換行符)

    3).fgets(str,n,fp),當讀取到n-1或者遇到換行符的時候停止,可以限定讀取的字元數

      會把換行符讀入字元串内