成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析C++中get()和getline()的區別(二)

開發 后端
本文介紹的是C++中兩個函數的使用區別,分別是get()和getline()。希望對大家有幫助,一起來看。

接上一篇,解析C++中get()和getline()的區別(一)

用getline()讀取輸入行

當程序使用cin輸入時,cin用空白符和行結束符將各個值分開。根據所需輸入的值,如需讀取一整行文本并且分開不同的域,則要使用getline成員函數

  1. getline(char*line,int size,char ='"n')  

第二個參數是本次讀取的最大字符個數,第三個參數是分隔字符,作為讀取一行結束的標志。

下面的函數從鍵盤讀取一行文本

  1. #include <iostream>  
  2. using namespace std;  
  3. int main()  
  4. {   
  5. char str[128];  
  6. cin.getline(str,sizeof(str));  
  7. cout <<"you typed :" <<str<<endl;  
  8. }   
  9. #include <iostream>  
  10. using namespace std;  
  11. int main()  
  12. {   
  13. char str[128];  
  14. cout<<"please input text and enter"<<endl;  
  15. cin.getline(str,sizeof(str),'X');  
  16. cout <<"you typed first line:" <<str<<endl;  
  17. cin.getline(str,sizeof(str));  
  18. cout <<"sencond line :"<<str<<endl;  
  19. }  

在鍵入X之前,可以按一次到多次回車鍵,而并不結束第一個cin.getline()的輸入 。 第一個cin.getline()的輸入操作將以鍵入X后的第一個回車結束。

cin.getline() 與 cin>>str 的一個不同是,前者輸入一行,行中可以包含空格,后者卻以空格或回車作為字串結束,不包含空格。
用get()讀取一個字符

每次獲取一個字符:char istream:[img]editor/images/smilies/default/24.gif[/img]

  1. //get.cpp  
  2. #include <iostream>  
  3. using namespace std;  
  4. int main()  
  5. {   
  6. char letter;  
  7. while(!cin.eof())  
  8. {   
  9. letter=cin.get();  
  10. letter=toupper(letter);  
  11. if (letter=='Y')  
  12. {  
  13. cout <<" "nY have been met "n";  
  14. break;  
  15. }   
  16. cout <<letter;  
  17. }   
  18. }  

使用流成員函數的輸入操作不只限于鍵盤,上例程序可從重定向輸入中讀取。

$ ./get < get.cpp

letter =cin.get();與cin>>letter 都是從輸入流中取一個字符,但卻有區別,默認情況下,cin>>letter將跳過任何在文件中發現的任何空白字符(空白字符指空格, tab,backspace,回車) .而cin.get不跳過空白字符。

用get()輸入一系列字符

  1. istream&istream::get(char*,int n,char delim='"n');  
  2. istream fin("abc.txt");  
  3. char buffer[80];  
  4. fin>>buffer; //不能保證輸入字符個數在80以內。  
  5. 可以改寫為  
  6. istream fin("abc.txt");  
  7. char buffer[80];  
  8. fin.get(buffer,80); //保證輸入字符個數在80以內 

getline()與get()第二種形式相同,唯一的例外是getline()從輸入流中輸入一系列字符時包括分隔符,而get()不包括分隔符。
put成員函數,依次輸出字符。

  1. #include <iostream>  
  2. using namespace std;  
  3. int main()  
  4. {   
  5. char letter;  
  6. for (letter='A'; letter<='Z';letter++)  
  7. cout.put(letter);   
  8. }  

cout<<letter; 與cout.put(letter)的區別是:前者顯示以數據類型表示的形式,后者以字符方式顯示。若letter是char型,兩者一樣。若 letter是int型,則cout<<letter顯示數字而不是字符了。

  1. #include <iostream>  
  2. #include <fstream>  
  3. using namespace std;  
  4. int main()  
  5. {   
  6. ifstream in("put.cpp");  
  7. if (in.fail())  
  8. {   
  9. cerr<<"Error opening the file"n";  
  10. }   
  11. while (!in.eof( ) )  
  12. {  
  13. cout.put(in.get() );  
  14. }   
  15. }  

注意get()這種形勢它讀取了空白符(含回車符),不跳過任何的字符。與get(char * ,int n ,delim='"n')這種行式不同,他不包括分隔符delim.

  • cin<<的結束符有enter space tab
  • cin.get()的結束符只有enter,但會把enter放入隊列等待
  • cin.getline()的結束符也只有enter,但不會把enter放入隊列

如果用cin>>…做過輸入,在使用cin.getline之前,需要處理一下。處理的方法很多,你可以在cin>>…的輸入語句后加一個語句cin.get();。

希望通過以上內容的介紹,能夠給你帶來幫助。

責任編輯:于鐵 來源: 互聯網
相關推薦

2011-07-20 17:31:12

C++

2011-04-11 09:43:25

C++C

2023-09-12 07:38:36

C++getline函數

2010-02-06 14:40:50

C++初始化和賦值

2024-06-28 10:04:09

2009-06-29 18:32:30

Hibernate

2020-06-17 12:22:44

C覆蓋重載

2011-04-06 08:57:07

C++java多態

2022-07-01 11:56:54

C語言C++編程語言

2024-04-09 08:57:25

SizeofC++字符串

2009-06-26 16:23:12

Hibernate gHibernate l

2010-01-28 15:22:12

C++嵌套類

2023-09-22 22:49:15

C++重載重寫

2011-06-08 11:02:14

GetPost

2011-05-18 18:05:47

C#C++

2024-02-21 23:13:45

C++編程開發

2011-06-21 15:00:07

JAVAC++

2010-01-28 14:38:36

C++和C#、Java

2011-07-13 18:00:51

CC++VC

2009-10-22 09:17:16

C++ CLR
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 911网站大全在线观看 | 五月综合色啪 | 天堂一区二区三区 | 999精品视频在线观看 | 婷婷久| 91久久久久 | 日本高清不卡视频 | 成人黄色电影免费 | 欧美日韩精选 | 中文字幕日韩欧美一区二区三区 | 91精品国产综合久久久久久丝袜 | 国产成人精品一区二区三区视频 | 久久久久www| 美女久久久久久久 | 一级毛片大全免费播放 | 国产精品视频一区二区三区不卡 | 日本三级视频 | 国产精品久久久久久吹潮日韩动画 | 中文字幕在线一区 | 欧美在线一区二区三区 | 精品免费视频 | 色橹橹欧美在线观看视频高清 | 啪啪毛片| 国产精品久久二区 | 91精品久久久久久久久久入口 | 天天操夜夜操 | 亚洲一区二区三区免费观看 | 国产精品久久久久久久久久久久久 | 欧美激情精品久久久久 | 午夜视频在线观看一区二区 | 午夜视频在线免费观看 | 香蕉久久久久久 | 日韩一区二区三区av | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 久久里面有精品 | 欧美性生交大片免费 | 中文字幕亚洲区一区二 | 性欧美精品一区二区三区在线播放 | 国产福利在线免费观看 | 久久伊人亚洲 | 黄色网址大全在线观看 |