今天要介紹的是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
當以上條件成立時,就進入迴圈裡的動作
要換行印出,所以
結果如下
若想閱讀相關文章請關注我的粉絲團
小資菜鳥向前衝
留言列表