国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C++面向行輸入之get()與getline()實例詳解

C++面向行輸入之get()與getline()實例詳解

2022-01-20 14:59Quirkygbl C/C++

在c++里當我們輸入一個字符串時習慣用cin,但是cin只能讀取一段不含空格的字符串,如果我們需要讀取一段包含空格的字符串時,就需要用到getline()或get(),下面這篇文章主要給大家介紹了關于C++面向行輸入之get()與getline()的相關資料,需

引入:

?
1
2
3
4
5
6
char a = 's';//這樣的語句合法
char b = "s";//不合法
/*
"S"不是字符常量,他表示兩個字符(S和\0)組成的字符串。
并且"S"表示的的是字符串所在的內存地址,相當于將一個內存地址賦給b
*/

cin使用空格、制表符、換行符來確定字符串的結束位置,這意味著cin在獲取字符數組時只讀取一個單詞。讀取該單詞后,cin將該字符串放到該數組中,并自動在結尾添加空字符。

e.g.

?
1
2
3
4
char a[30];
char b[30];
cin>>a;
cin>>b;

當你輸入

word1 word2

并敲下回車,cin>>a在word1后檢測到空格結束

但程序不會再提示你要輸入b

程序把word2留在輸入隊列中,當cin在輸入隊列中搜索時,發現了word2,cin讀取word2并將它放在b數組中

getline()

讀取整行

通過回車鍵輸入的換行符來確定輸入結尾

可以使用cin.getline() 該函數有兩個參數,第一個參數是用來儲存輸入行的數組名稱,第二個參數是要讀取的字符數(如果這個數是20,則函數最多讀取19個字符,余下的空間用于存儲自動在結尾處添加的空字符)。

getline()成員函數在讀取指定數目的字符或遇到換行符時停止讀取

!每次讀取一行,通過換行符來確定行尾,但不保存換行符,相反,在存儲字符串時,用空字符來替換換行符!

get()

讀取整行(同getline())

通過回車鍵輸入的換行符來確定輸入結尾(同getline())

可以使用cin.get() 與getline()函數接收的參數相同,解釋參數的方式也相同。并且都讀取到行尾

!但是,get不再讀取并丟棄換行符,而是將其留在輸入隊列中!

解決方法:

可以用不帶參數的get()函數來處理換行符

?
1
2
3
cin.get(name,ArSize);
cin.get();
cin.get(dessert,ArSize);

將兩個類成員拼接起來

?
1
cin.get(name,ArSize).get();

? 可以這樣操作是因為cin.get(name,ArSize)返回一個cin對象,該對象隨后被用來調用get()函數

同樣,可以把輸入中連續的兩行分別讀入兩個數組中

?
1
cin.getline(name1,ArSize).getline(name2,ArSize);

差異

1、為什么有時候用get而不用getline呢?

老式實現沒有getline(),其次get()使輸入更仔細

getline()使用起來簡單一些,但get()使得檢查錯誤更簡單些

2、如何判斷get是因為讀取了整行而停止還是因為數組已填滿?

查看下一個字符,如果是換行符,說明已讀取了整行輸入,否則,該行中還有其他輸入

可能出現問題

1、空行

這兩種函數的下一條輸入語句將在上一次結束讀取的位置開始讀取

get()讀取空行后設置失效位時,意味著接下來的輸入將被阻斷,但可以用cin.clear()命令來恢復輸入

2、輸入的字符串可能比分配的空間長

如果輸入行包含的比指定的多,則兩種函數會把余下的字符留在輸入隊列中,而getline()還會設置失效位,并關閉后面的輸入

3、混合輸入數字和字符串導致的問題

cin輸入一個數字類型,按下回車時,換行符留在了輸入隊列,下一次被getline()等看到換行符,將認為是一個空行,直接賦給數組

解決方法是讀取地址之前丟棄換行符

可以用(cin>>year).get()或者cin>>year;get();

關于string使用getline()

C++添加了string類擴展了C++庫。因此可以用string類型的變量而不是字符數組來存儲字符串。要使用string類,必須包含頭文件string。

一般字符數組和string變量使用getline()方法是不同的。

?
1
2
3
4
5
char a[100];
string str;
 
cin.getline(a,100);
getline(cin,str);

cin.getline()這種是句點表示法,函數getline()是istream類的一個類方法。getline(cin,str)沒有用到句點表示法,這表明這個getline()不是類方法。它將cin作為參數,指出到哪里去查找輸入。另外,也沒有指出字符串的長度,因為string對象會根據輸入的串的大小自動調整自身的大小。

為什么第二個getline()不是istream的類方法呢。在引入string類之前很久,C++就有了istream類。因此istream的設計考慮到了諸如double和int等基本C++數據類型,但沒有考慮到string類型,所以string類中,有處理double,int和其他基本類型的類方法,但沒有處理string對象的類方法。

但cin方法也適用與string類對象,這涉及到友元函數,這里先不闡述。

總結

到此這篇關于C++面向行輸入之get()與getline()的文章就介紹到這了,更多相關C++面向行輸入get()與getline()內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/WZ-1120232314/p/15391435.html

延伸 · 閱讀

精彩推薦
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩一区二区三区电影在线观看 | 99亚洲| 99久久夜色精品国产亚洲1000部 | 高清国产一区二区三区 | 精品一区二区久久久久久久网站 | 中文字幕av在线 | 精品国产乱码久久久久久1区2区 | 精品中文字幕在线 | 日韩不卡一区二区三区 | 国产精品久久久久久久久久久天堂 | 国产一区二区三区免费 | 天天亚洲综合 | 成人免费在线电影 | 色日韩 | 日本精品一区二区三区在线观看视频 | 亚洲自拍偷拍综合 | 国产精品福利在线观看 | 成人妇女免费播放久久久 | 中文字幕在线免费视频 | 欧美久久精品 | 免费在线一区二区 | 亚洲一区中文字幕在线观看 | 午夜电影av | 96成人爽a毛片一区二区 | 精品国产乱码一区二区三区 | 91精品视频导航 | 日韩精品视频在线 | 欧美国产日韩一区 | 亚洲成人久久久 | 日韩精品www | 黄色三级网站 | 久久久精品综合 | 日韩精品专区 | 久久国产精品一区二区三区 | 国产精品视频一二三区 | 超碰一区| 成人午夜视频在线观看 | 欧美日韩视频在线 | 亚洲一区二区av | 日本一区不卡 | 久久一区二区三 |