當前位置:首頁 » 編程語言 » c語言gets什麼意思

c語言gets什麼意思

發布時間: 2022-04-11 01:16:01

1. c語言,gets函數的詳細用法

c語言,gets()函數用來從標准輸入設備(鍵盤)讀取字元串直到換行符結束,但換行符會被丟棄,然後在末尾添加''字元。其調用格式為:gets(s)。其中s為字元串變數(字元串數組名或字元串指針)。如果為單個字元指針,編譯連接不會有錯誤,但運行後內存溢出錯誤。

(1)c語言gets什麼意思擴展閱讀:

gets(s)函數與scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函數輸入字元串時存在一個問題,就是如果輸入了空格會認為字元串結束,空格後的字元將作為下一個輸入項處理,但gets()函數將接收輸入的整個字元串直到遇到換行為止。

gets(s)函數可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。

2. c語言裡面gets(a)是什麼意思

從輸入 讀一行字元串
並存入到a中
讀取包括換行符
但字元串中不包括。

比如 輸入123 as bbb回車
a中存儲
123 as bbb

3. gets是什麼意思

gets(str);
在C語言中是從鍵盤上接收一個字元串,保存在str為首地址的字元串內存空間,以回車做為結束符

4. c語言gets是什麼意思

gets從標准輸入設備讀字元串函數,其可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。
從stdio流中讀取字元串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為『\0』空字元,並由此來結束字元串。
返回值編輯
讀入成功,返回與參數buffer相同的指針;讀入過程中遇到EOF(End-of-File)或發生錯誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數檢查是發生錯誤還是遇到EOF。
注意
本函數可以無限讀取,不會判斷上限,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。如果溢出,多出來的字元將被寫入到堆棧中,這就覆蓋了堆棧原先的內容,破壞一個或多個不相關變數的值。這個事實導致gets函數只適用於玩具程序,為了避免這種情況,我們可以用fgets(stdin) (fgets實際上可以讀取標准輸入(即大多數情況下的鍵盤輸入),具體參閱fgets詞條)來替換gets()。在V7的手冊(1979年)中說明:為了向後兼容,gets刪除換行符,gets並不將換行符存入緩沖區。
由於可以無限讀取,所以在2011年12月,ANSI 採納了 ISO/IEC 9899:2011 標准,標准中刪除了 gets()函數,使用一個新的更安全的函數gets_s()替代(具體用法看下面示例)。
#include <stdio.h> //這個頭文件包含gets()函數,這個函數在ISO/IEC 9899 2011(C11)標准中被移除
int main(void)
{
char str1[5]; //不要char*p,然後gets(p),這是錯誤的,因為p沒有指向有效的內存,它可能指向任何非法地址 // 地方的未知大小的內存塊,這樣以來,就可能修改了不屬於本程序的內存的內容
gets(str1);
printf("%s\n", str1);
return 0;
}

#include <stdio.h>//gets_s()用法
#define CH 20
int main(void)
{
char ch[CH];
printf("請輸入你的名字:\n");
gets_s(ch,CH); //這里不能用gets_s(ch);
printf("這是你的名字:%s\n", ch);
return 0;
}

5. C語言getchar()和gets()的用法

C語言getchar()和gets()的用法:

1、gets讀一行,getchar()讀一個字元。

2、函數用法:
1)gets()用於從標准輸入流stdin讀入一個整行(以' '或EOF)結束,寫入ptr指向的字元數組,並返回這個指針;出錯或遇到文件結束時則返回NULL。行末的' '從流中取出,但不寫入數組。gets()不檢查被寫入的數組大小。

2)getchar()用於從標准輸入流stdin讀入一個字元,並返回這個字元。如果讀到文件結尾,則返回EOF。注意到EOF不能用char類型表示,所以getchar()函數返回的是一個int型的數。使用時也應該注意這一點。

拓展資料:

getchar是讀入函數的一種。它從標准輸入里讀取下一個字元,相當於getc(stdin)。返回類型為int型,為用戶輸入的ASCII碼或EOF。

gets從標准輸入設備讀字元串函數,其可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。

C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。

C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。

網路——C語言

6. C語言中gets函數與getchar函數有什麼區別

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直接讀到一個空字元串。

7. 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] = ""; //字元數組初始化

printf("請輸入字元串:");

gets(str);

printf("%s ", str);

return 0;

}

輸出結果是:

請輸入字元串:i love you

i love you

(7)c語言gets什麼意思擴展閱讀:

從stdin流中讀取字元串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為『』空字元,並由此來結束字元串。

讀入成功,返回與參數buffer相同的指針;

讀入過程中遇到EOF(End-of-File)或發生錯誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數檢查是發生錯誤還是遇到EOF。

8. c語言gets函數

gets()函數用於從緩沖區中讀取字元串,其原型如下:

char *gets(char *string);

gets()函數從流中讀取字元串,直到出現換行符或讀到文件尾為止,最後加上NULL作為字元串結束。所讀取的字元串暫存在給定的參數string中。

【返回值】若成功則返回string的指針,否則返回NULL。

注意:由於gets()不檢查字元串string的大小,必須遇到換行符或文件結尾才會結束輸入,因此容易造成緩存溢出的安全性問題,導致程序崩潰,可以使用fgets()代替。

(8)c語言gets什麼意思擴展閱讀:

功能

從stdio流中讀取字元串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為『』空字元,並由此來結束字元串。

返回值

讀入成功,返回與參數buffer相同的指針;讀入過程中遇到EOF(End-of-File)或發生錯誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數檢查是發生錯誤還是遇到EOF。

注意

本函數可以無限讀取,不會判斷上限,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。如果溢出,多出來的字元將被寫入到堆棧中,這就覆蓋了堆棧原先的內容,破壞一個或多個不相關變數的值。

這個事實導致gets函數只適用於玩具程序,為了避免這種情況,我們可以用fgets(stdin) (fgets實際上可以讀取標准輸入(即大多數情況下的鍵盤輸入),具體參閱fgets詞條)來替換gets()。在V7的手冊(1979年)中說明:為了向後兼容,gets刪除換行符,gets並不將換行符存入緩沖區。

9. C語言程序中gets和puts是什麼意思

gets和scanf的思意有點像,可以是SCANF的變象,它們都是接收從鍵盤上輸入的內容,只是二者之間接收數據時的規則不同,gets是用來專門接收輸入的字元串數組,可以說是scanfr具體分類。gets接收字元數組名、字元指針或者字元數組元素的地址。
puts就是從某一址開始,依次輸出存儲單元中的字元。

熱點內容
linux解壓到文件夾命令 發布:2025-01-19 12:43:20 瀏覽:425
父母訪問 發布:2025-01-19 12:33:05 瀏覽:794
加密文件如何編輯 發布:2025-01-19 12:31:18 瀏覽:219
androiddpi 發布:2025-01-19 12:21:15 瀏覽:655
伺服器鎖了怎麼解 發布:2025-01-19 12:06:58 瀏覽:301
DH演算法使用 發布:2025-01-19 11:57:30 瀏覽:932
Wcl上傳如何選擇伺服器 發布:2025-01-19 11:17:24 瀏覽:763
如何編程簡單給伺服器發一個指令 發布:2025-01-19 11:16:44 瀏覽:806
python控制台亂碼 發布:2025-01-19 10:55:38 瀏覽:364
安卓鴻蒙蘋果哪個好用 發布:2025-01-19 10:32:33 瀏覽:265