gets用法c語言
㈠ c語言getchar()和gets()的用法
1、gets讀一行,getchar()讀一個字元。
函數原型:
char
*
gets(char
*
ptr);
int
getchar(void);
2、函數用法:
1)gets()用於從標准輸入流stdin讀入一個整行(以'\n'或EOF)結束,寫入ptr指向的字元數組,並返回這個指針;出錯或遇到文件結束時則返回NULL。行末的'\n'從流中取出,但不寫入數組。gets()不檢查被寫入的數組大小。
2)getchar()用於從標准輸入流stdin讀入一個字元,並返回這個字元。如果讀到文件結尾,則返回EOF。注意到EOF不能用char類型表示,所以getchar()函數返回的是一個int型的數。使用時也應該注意這一點。
㈡ C語言的get是怎樣使用的呢
gets函數:從stdin流中讀取字元串,直至讀到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。
換行符不作為讀取串的內容,讀取的換行符被轉換為 空字元,並以此結束字元串;當使用unicode寬字元文本時,請使用寬字元版本函數 _getws()。
gets函數可以無限讀取,不會判斷上限,所以使用時應確保buffer的空間足夠大,以便在執行讀取操作時不發生溢出。
gets函數在C11標准中被移除,改為更加安全的gets_s函數;頭文件:stdio.h;返回值:若讀入成功,返回與參數buffer相同的字元指針。
若讀入過程中遇到EOF或發生錯誤,返回NULL指針。所以當遇到返回值為NULL的情況時,應使用ferror或feof函數檢查是發生錯誤還是遇到EOF。
(2)gets用法c語言擴展閱讀
#include <iostream>
#include <limits>
#include <cstdio>
using namespace std;
int main()
{
int i_test, c;
printf("Please enter an integer: ");
scanf("%d", &i_test);
printf("You just entered %d. Press enter to continue...", i_test);
while ( (c = getchar()) != ' ' && c != EOF ) ; // 清空輸入流
clearerr(stdin); // 清除流的錯誤標記
cin.get(); // 等待用戶輸入回車
return 0;
}
㈢ C語言中gets怎麼用
很多帶「_s」後綴的函數是為了讓原版函數更安全,傳入一個和參數有關的大小值,避免引用到不存在的元素,有時hacker可以利用原版的不安全性黑掉系統。
單獨寫gets_s(a)是不正確的,需要傳入一個a的長度,改成gets_s(a,10)
告訴gets_s函數最多隻能接收10個字元進來。
㈣ C語言中如何用 gets(),put()
gets()、puts()
都是針對字元串類型處理的,傳入的參數是char *型,或char[]型
gets()是輸入字元串函數,puts()是字元串輸出函數
例如:
char *a;
gets(a);
或者:
char a[10];
gets(a);
相當於:
scanf("%s",a);
輸出函數:
puts(a);
相當於:
printf("%s\n",a);
㈤ c語言gets()的用法是什麼
在前面從鍵盤輸入字元串是使用 scanf 和 %s。其實還有更簡單的方法,即使用 gets() 函數。該函數的原型為:
# include <stdio.h>
char *gets(char *str);
這個函數很簡單,只有一個參數。參數類型為 char* 型,即 str 可以是一個字元指針變數名,也可以是一個字元數組名。gets() 函數的功能是從輸入緩沖區中讀取一個字元串存儲到字元指針變數 str 所指向的內存空間。
下面將前面中使用 scanf 輸入字元串的程序改一下:
# include <stdio.h>
int main(void)
{
char str[20] = "