當前位置:首頁 » 編程語言 » gets用法c語言

gets用法c語言

發布時間: 2022-07-25 22:22:49

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

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

gets(str);

printf("%s ", str);

return 0;

}

輸出結果是:

請輸入字元串:i love you

i love you

(5)gets用法c語言擴展閱讀:

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

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

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

㈥ c語言gets函數

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

char *gets(char *string);

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

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

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

(6)gets用法c語言擴展閱讀:

功能

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

返回值

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

注意

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

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

㈦ 在c語言中怎樣使用gets()函數!

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

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

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

3、本函數可以無限讀取,不會判斷上限,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。如果溢出,多出來的字元將被寫入到堆棧中,這就覆蓋了堆棧原先的內容,破壞一個或多個不相關變數的值。這個事實導致gets函數只適用於玩具程序,為了避免這種情況,我們可以用fgets(stdin) (fgets實際上可以讀取標准輸入(即大多數情況下的鍵盤輸入),具體參閱fgets詞條)來替換gets()。在V7的手冊(1979年)中說明:為了向後兼容,gets刪除換行符,gets並不將換行符存入緩沖區。

4、gets()函數用來從標准輸入設備(鍵盤)讀取字元串直到換行符結束,但換行符會被丟棄,然後在末尾添加''字元。其調用格式為:gets(s);其中s為字元串變數(字元串數組名或字元串指針)。

㈧ 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;
}

㈨ gets在c語言中什麼意思

c語言里gets(a) 表示輸入一個字元串到數組a,a表示讀取一個字元串存入a中,字元串輸入結束標志為換行符。

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

(9)gets用法c語言擴展閱讀:

注意

因為本函數可以無限讀取,易發生溢出。如果溢出,多出來的字元將被寫入到堆棧中,這就覆蓋了堆棧原先的內容,破壞一個或多個不相關變數的值。

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

由於可以無限讀取,所以在2011年12月,ANSI 採納了 ISO/IEC 9899:2011 標准,標准中刪除了 gets()函數,使用一個新的更安全的函數gets_s()替代(具體用法看下面示例)。

熱點內容
組合公式的演算法 發布:2025-01-27 12:45:50 瀏覽:277
落櫻小屋哪裡下載安卓 發布:2025-01-27 12:35:13 瀏覽:71
微信伺服器IP跳轉 發布:2025-01-27 12:26:54 瀏覽:73
oracle自動備份腳本linux 發布:2025-01-27 12:21:40 瀏覽:936
pop伺服器密碼怎麼填 發布:2025-01-27 12:20:02 瀏覽:968
oraclesqlnumber 發布:2025-01-27 12:04:22 瀏覽:849
如何看三才配置數理暗示力 發布:2025-01-27 12:04:15 瀏覽:811
我的世界離線2b2t的伺服器 發布:2025-01-27 11:51:25 瀏覽:144
網站被異常篡改訪問有風險 發布:2025-01-27 11:50:01 瀏覽:431
光遇國際服腳本全部圖 發布:2025-01-27 11:47:40 瀏覽:139