get和gets函數的區別是什么?
一、函數輸入方面
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直接讀到一個空字符串。