C語言中gets函式與getchar函式的區別
一、函式輸入方面
1、gets()函式用來從標準輸入裝置(鍵盤)讀取字串直到回車結束,但回車符不屬於這個字串。其呼叫格式為:gets(s);s為字串變數(字串陣列名或字串指標),gets(s)函式與scanf("%s", &s)相似,但不完全相同。
2、而getchar函式執行時字元是連續輸入的,執行結果卻是正確的,這是因為輸入字元後,它們暫存於鍵盤的緩衝區中,然後由getchar函式從鍵盤緩衝區中一個一個的取出來。就是如果輸入了空格會認為輸入字串結束,空格後的字元將作為下一個輸入項處理,但gets() 函式將接收輸入的整個字串直到回車為止。
二、字元輸入方面
1、gets()函式可以用於對字串的輸入,不需要將字串拆分成一個一個的字元進行輸入。
2、而getchar函式只能用於單個字元的輸入,一次輸入一個字元。程式的功能是輸入一個字元,顯示一個字元,回車換行,再輸入並顯示一個字元。
三、輸出格式
1、gets函式是輸入一行字串,以回車結束,並且回車鍵會被過濾掉,不會被讀回到字串中。
2、而getchar()是讀答取一個字元,包括回車鍵也會被讀成一個字元。這個程式在輸入name[i]前,用getchar()把之前scanf("%d",&num[i]);中,輸入整數後按的回車鍵給讀走,否則這個回車鍵會導致gets直接讀到一個空字串。
C語言中gets函式與getchar函式的區別
一、函式輸入方面
1、gets()函式用來從標準輸入裝置(鍵盤)讀取字串直到回車結束,但回車符不屬於這個字串。其呼叫格式為:gets(s);s為字串變數(字串陣列名或字串指標),gets(s)函式與scanf("%s", &s)相似,但不完全相同。
2、而getchar函式執行時字元是連續輸入的,執行結果卻是正確的,這是因為輸入字元後,它們暫存於鍵盤的緩衝區中,然後由getchar函式從鍵盤緩衝區中一個一個的取出來。就是如果輸入了空格會認為輸入字串結束,空格後的字元將作為下一個輸入項處理,但gets() 函式將接收輸入的整個字串直到回車為止。
二、字元輸入方面
1、gets()函式可以用於對字串的輸入,不需要將字串拆分成一個一個的字元進行輸入。
2、而getchar函式只能用於單個字元的輸入,一次輸入一個字元。程式的功能是輸入一個字元,顯示一個字元,回車換行,再輸入並顯示一個字元。
三、輸出格式
1、gets函式是輸入一行字串,以回車結束,並且回車鍵會被過濾掉,不會被讀回到字串中。
2、而getchar()是讀答取一個字元,包括回車鍵也會被讀成一個字元。這個程式在輸入name[i]前,用getchar()把之前scanf("%d",&num[i]);中,輸入整數後按的回車鍵給讀走,否則這個回車鍵會導致gets直接讀到一個空字串。