① 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語言
② C語言的get是怎樣使用的呢
gets函數:從stdin流中讀取字元串,直至讀到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。
換行符不作為讀取串的內容,讀取的換行符被轉換為 空字元,並以此結束字元串;當使用unicode寬字元文本時,請使用寬字元版本函數 _getws()。
gets函數可以無限讀取,不會判斷上限,所以使用時應確保buffer的空間足夠大,以便在執行讀取操作時不發生溢出。
gets函數在C11標准中被移除,改為更加安全的gets_s函數;頭文件:stdio.h;返回值:若讀入成功,返回與參數buffer相同的字元指針。
若讀入過程中遇到EOF或發生錯誤,返回NULL指針。所以當遇到返回值為NULL的情況時,應使用ferror或feof函數檢查是發生錯誤還是遇到EOF。
(2)c語言字元串輸入有get函數嘛擴展閱讀
#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函數
gets()函數用於從緩沖區中讀取字元串,其原型如下:
char *gets(char *string);
gets()函數從流中讀取字元串,直到出現換行符或讀到文件尾為止,最後加上NULL作為字元串結束。所讀取的字元串暫存在給定的參數string中。
【返回值】若成功則返回string的指針,否則返回NULL。
注意:由於gets()不檢查字元串string的大小,必須遇到換行符或文件結尾才會結束輸入,因此容易造成緩存溢出的安全性問題,導致程序崩潰,可以使用fgets()代替。
(3)c語言字元串輸入有get函數嘛擴展閱讀:
功能
從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(),put()
都是數組函數,gets()是輸入函數,puts()是輸出函數,因為是數組函數所以在遇到『\0'是輸出(輸入)結束,在使用使main()函數上面要打# include <stdio.h>
⑤ C語言當用戶要求輸入的字元串中含有空格時,應使用的輸入函數是什麼啊
用gets()函數;gets從標准輸入設備讀字元串函數,其可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。
功能
從stdin流中讀取字元串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為『\0』空字元,並由此來結束字元串。
返回值
讀入成功,返回與參數buffer相同的指針;讀入過程中遇到EOF(End-of-File)或發生錯誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數檢查是發生錯誤還是遇到EOF。
(5)c語言字元串輸入有get函數嘛擴展閱讀:
gets()函數用法:
示例
1、C:
#include
<stdio.h>
//這個頭文件包含gets()函數,這個函數在ISO/IEC
9899
2011(C11)標准中被移除
int
main(void)
{
char
str1;
//不要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;
}
2、C++:
#include
<iostream>
#include
<cstdio>
using
namespace
std;
int
main()
{
char
str[100];
gets(str);
cout<<str<<endl;
return
0;
}
gets()函數用來從標准輸入設備(鍵盤)讀取字元串直到換行符結束,但換行符會被丟棄,然後在末尾添加'\0'字元。其調用格式為:
gets(s);其中s為字元串變數(字元串數組名或字元串指針)。
gets(s)函數與scanf("%s",s)相似,但不完全相同,使用scanf("%s",s)
函數輸入字元串時存在一個問題,就是如果輸入了空格會認為字元串結束,空格後的字元將作為下一個輸入項處理,但gets()函數將接收輸入的整個字元串直到遇到換行為止。
也就是說:gets()函數讀取到\n(我們輸入的回車)於是停止讀取,但是它不會把\n包含到字元串裡面去。然而,和它配合使用的puts函數,卻在輸出字元串的時候自動換行。
⑥ c語言里getchar()是什麼
getchar()函數是C語言專門為輸入單個字元而提供的,getchar()函數是從I/O字元流中讀取一個字元,必須輸入換行才能讀入字元。
例如:
#include<stdio.h>
int main(void)
{
char ch;
int i;
for(i=0;i<5;i++)
{
ch=getchar();//帶回顯,且等待按Enter鍵換行
printf("%c",ch);
}
return 0;
}
(6)c語言字元串輸入有get函數嘛擴展閱讀:
getchar()、getche()、getch()相比較
getchar()函數是C語言專門為輸入單個字元而提供的,getchar()函數是從I/O字元流中讀取一個字元,必須輸入換行才能讀入字元。
getche()、getch()函數也是讀入單個字元,是從控制台直接讀取一個字元,無須換行即可讀入字元。
getchar()是C的標准庫函數,包含在頭文件<stdio.h>中。
而getche()和getch()需要的頭文件是<conio.h>。conio.h不是C標准庫中的頭文件。conio是ConsoleInput/Output(控制台輸入輸出)的簡寫,其中定義了通過控制台進行數據輸入和數據輸出的函數,主要是一些用戶通過按鍵盤產生的對應操作。
getchar()函數從鍵盤讀入字元時,輸入的字元帶回顯,並且必須等到輸入換行(按Enter鍵)才能讀取一個字元。
getche()函數從鍵盤讀入字元時,輸入的字元會回顯到顯示屏上,但是無須輸入換行即可讀取一個字元。
getch()函數從鍵盤讀入字元時,輸入的字元不回顯到顯示屏上,但是無須輸入換行即可讀取一個字元。