今天要介紹的是C++的輸入

首先是cin

跟c的scanf比起來方便很多,不管宣告甚麼

都可以用cin來輸入

int inputFir;

cin>>inputFir;

 

float inputSec;

cin>>inputSec;

 

string inputThr;

cin>>inputThr;

有發現到明明輸入的字串是"hello world"

卻只輸出"hello"嗎?

當cin讀取到 空格、TAB、Enter的時候就會停止

所以想要輸入字串就用(標頭記得打上#include <string.h>)

string input;

getline(cin,input);

它只會讀到Enter停止,當遇到空格或是TAB它還是會繼續讀取你的輸入

getline還有其他的用處,像

string input;

getline(cin,input,'?');

它可以讓你決定停在哪一個字元,照上面的例子

就是遇到問號停止,也就是會只印到問號的前一個字元

這個功能應該最常用來切割字串了吧

我之前一篇"英文斷詞"的文章裡面就有提過怎麼切割

現在在這裡再介紹一次

例:輸入個一句子,斷詞用換行印出

 一開始,先在最上面打上

#include <string.h>

#include <sstream>

第一行可以讓你輸入字串

第二行是用來讓字串轉型的

string input;

getline(cin,input);                 //宣告一個字串,並且輸入

stringstream delim(input);   //宣告一個變數delim,讀入input進去

string token;                        //在宣告一個字串token,在下一行會用到

在下一行是

while(getline(delim,token,' '))

先講解while當中的條件

getline(cin,input,'?')同樣道理

cin是來源,input是存入的地方,'?'則是切割的條件

getline讀取delim中的字串,遇到空白時,就把前面讀取到的字串

存入token

當以上條件成立時,就進入迴圈裡的動作

要換行印出,所以

結果如下

若想閱讀相關文章請關注我的粉絲團

小資菜鳥向前衝

https://www.facebook.com/%E5%B0%8F%E8%B3%87%E8%8F%9C%E9%B3%A5%E5%90%91%E5%89%8D%E8%A1%9D-204484273323335/?fref=ts

文章標籤
創作者介紹

cychss6305的部落格

cychss6305 發表在 痞客邦 PIXNET 留言(0) 人氣()