C 中的字串輸入輸出函式詳解

2022-06-04 12:30:11 字數 2152 閱讀 2684

常見的輸入問題:

1、直接用cin輸入(當然可以使用cout直接輸出):

1)string s;

cin >> s; //只接收回車鍵和空格前面所輸入的字元!!!!!

一旦輸入空格,cin將空格視為回車鍵,將會將後面的字元賦予後續有輸入cin函式的變數中,如下面的a,故一定確保輸入無空格!!

2)char a[10];

cin >> a; //同樣,只接收回車鍵和空格前面所輸入的字元!!!!!

一旦輸入空格,cin將空格視為回車鍵,將會將後面的字元賦予後續有輸入cin函式的變數中,如下面的a,故一定確保輸入無空格!!

同樣:(以下情況是一樣的)

char *b =a;

cin >> b;

2、使用空格為間隔輸入多個數字或字元(與scanf功能一樣)

1)int a,b,c;

cin >>a>>b>>c; //可以直接輸入a,b,c的值,中間用空格[n個也行]或者回車鍵間隔都可以!!!

2)char a, b;

cin>>a>>b; //可以直接輸入a,b的值,中間用空格[n個也行]或者回車鍵間隔都可以!!!但無法將空格字元賦予a,b

輸入函式

string str/line;

1)cin

cin >> line

//遇到回車鍵停止輸入,按空格輸出,

空格、回車等會被丟棄(這些還在緩衝區中,下次若用cin會自動丟棄),下次又會讀取流中剩下的內容。(對於要輸入乙個字串如果用cin>>input;這樣的方法來輸入乙個字串,則遇到空白換行,製表之類的,輸入都會停止)因為從流中讀入資料儲存到string中,string會遇到空格就停止錄入。這樣當我們輸入一行帶空格的字串,就要考慮getline函式,從流中讀入一行字串.

2)getline

string line;

getline(cin,line);//按回車鍵結束輸入

getline(cin,line,'#');

//輸入一串字元(不管多少個回車鍵),只要是在『#』號之 前的字元都會讀取並儲存

get與getline區別不是很大,但乙個明顯的區別是get遇到'\n '字元後便返回,這時 '\n '還在緩衝區中,所以下次讀出來的將是 '\n ',而getline遇到'\n '也返回,但它會把 '\n '從緩衝區裡移除掉,所以很多時候用getline方便些。

3)cin.get()

用法1: cin.get(字元變數名)可以用來接收字元

char ch;

ch = cin.get(); //只接受乙個字元

用法2:cin.get(字元陣列名,接收字元數目)用來接收一行字串,可以接收空格

char a[20];

cin.get(a,20);

注意:cin.get()會將回車鍵儲存在快取中,若後面還有cin.get()函式,則該函式會將快取中的回車鍵取出並賦予後面的輸入變數中,故,使用了cin.get()函式就一定後面要加getchar(),將回車鍵讀取並丟棄!!!!!!!!!

4)cin.getline()

//接受乙個字串可以接受空格並輸出

char m[20];

cin.getline(m,5);

輸入:jkjkjkjkkjkjkjkj

輸出:jklj //第5個字元預設新增'\0'

5)gets()【c++11已棄用!!!】

//接受乙個字元,可以接受空格並輸出,需包含標頭檔案#include

char ch;

gets(ch);

3)getchar()

getchar()是stdio.h中的庫函式,它的作用是從stdin流中讀入乙個字元,也就是說,如果stdin有資料的話不用輸入它就可以直接讀取了,第一次getchar()時,確實需要人工的輸入,但是如果你輸了多個字元,以後的getchar()再執行時就會直接從緩衝區中讀取了。

故一般用getchar()來清除快取中的字元;

4)輸入強行退出

ctrl + z 或輸入eof再按回車鍵

字串輸入輸出函式

while gets name null 可檢查檔案是否結尾 while ch getchar eof gets 讀取換行符並將其丟棄,fgets 把換行符存字串裡,但每次顯示字串會顯示換行符 不足之處 fgets 是為檔案i o而設計得,在處理鍵盤輸入時就不如gets 那麼方便。它需要第二個引數來...

字串輸入輸出函式

字串輸入首先要考慮的是儲存位置和儲存空間大小。例子 char name scanf s name 指標未初始化,可能指向記憶體中的任意地方,字串讀入的時候有可能覆蓋記憶體中的關鍵資料,造成程式或機器崩潰。char name 81 這種方式顯式宣告空間並進行初始化。scanf s str 函式讀入單個...

C 字串的輸入輸出

一 cin函式 適合單個字元的輸入,遇到空格 製表符和換行符自動停止讀入 同樣適合連續的不含空格 製表符和換行符的字串的輸入 includeusing namespace std void main 3 cin.getline 原形 getline char line,int size,char 結...