C++?中如何結(jié)束?while?(cin>>str)?的輸入
如何結(jié)束 while (cin>>str) 的輸入
cin
當(dāng)從鍵盤上進(jìn)行輸入并按下回車時(shí),輸入的字符就會(huì)被送到輸入緩沖區(qū)進(jìn)行存儲(chǔ),且以空白字符為分隔符。
window 下
如果本行存在輸入字符的情況下,在行尾加 ctrl+z 并且回車之后并不會(huì)結(jié)束輸入,而是將 ctrl+z 當(dāng)作一個(gè)字符來(lái)解釋,將該字符當(dāng)作普通字符緩沖并輸出。
要結(jié)束輸入需要在新行(即輸入完成之后回車到新行)之后,輸入 ctrl+z 并回車結(jié)束輸入。
linux 下
在新行開頭,輸入ctrl+d,即為 EOF,此時(shí)輸入結(jié)束。
在行尾結(jié)束輸入 ctrl+d 則表示輸出輸入緩存區(qū)的數(shù)據(jù),此時(shí)再次輸入 ctrl+d 就代表 EOF,從而結(jié)束輸入。
while(cin>>str);auto;find();
while(cin>>str);auto;find();
想嘗試一些新的料理,每個(gè)料理需要一些不同的材料,問(wèn)完成所有的料理需要準(zhǔn)備多少種不同的材料。
每個(gè)輸入包含 1 個(gè)測(cè)試用例。每個(gè)測(cè)試用例的第 i 行,表示完成第 i 件料理需要哪些材料,各個(gè)材料用空格隔開,輸入只包含大寫英文字母和空格,輸入文件不超過(guò) 50 行,每一行不超過(guò) 50 個(gè)字符。輸出一行一個(gè)數(shù)字表示完成所有料理需要多少種不同的材料。
舉例:BUTTER FLOUR HONEY FLOUR EGG 輸出:4
方法一SET
#include <iostream> ?#include <set> ?#include <string> ?using namespace std; ?int main() { ?string str; ?set<string> datas; ?//輸入流結(jié)束的條件就是:^z 之前不能有任何字符輸入(回車除外),否則 ^z 起不到流結(jié)束的作用。? ?while (cin >> str) { ?datas.insert(str); ?} ?cout << datas.size() << endl; ?return 0; ?}
方法二VECTOR
#include <iostream> ?#include <vector> ?#include <string> ?#include <algorithm> ?using namespace std; ?int main(){ ?string food; ?vector<string> Vec; ?int count = 0; ?while(cin>>food){ ?//Dev-C++ 5.4.0中的auto 工具——編輯選項(xiàng)——程序——g++修改成g++ -std=c++11 ?auto ?it = find(Vec.begin(),Vec.end(),food); ?if (it == Vec.end()) ?Vec.push_back(food); ?} ?cout<<Vec.size()<<endl; ?return 0; ?}
學(xué)習(xí)總結(jié)
問(wèn)題一:Vector和Set的區(qū)別
首先:Vector是數(shù)組,set是一個(gè)集合,內(nèi)部的元素不會(huì)重復(fù),同時(shí)它會(huì)自動(dòng)進(jìn)行排序,也是從小到大;
其次:由于存儲(chǔ)結(jié)構(gòu)不同,vector擅長(zhǎng)于解決某個(gè)位置是什么值的問(wèn)題,而set擅長(zhǎng)于解決,某個(gè)元素在那個(gè)位置的問(wèn)題,知道元素的內(nèi)容,
查找它的位置。因此vector特別好的支持隨機(jī)訪問(wèn),而set不支持(不支持下標(biāo)訪問(wèn))
問(wèn)題二:find() 返回符合搜索條件的字符區(qū)的第一個(gè)字符的索引,沒(méi)找到目標(biāo)就返回npos。
if(str.find("jia")==string::npos),沒(méi)找到==后必有
第二個(gè)參數(shù):(可有可無(wú))指出string內(nèi)的搜索起點(diǎn)的索引
第三個(gè)參數(shù):(可有可無(wú))指出搜出的字符個(gè)數(shù)
問(wèn)題三:auto在 Dev-C++ 5.4.0的使用
問(wèn)題四:while(cin>>str)的使用 windows中
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語(yǔ)言以數(shù)據(jù)塊的形式讀寫文件實(shí)例代碼
本文主要介紹C語(yǔ)言中以數(shù)據(jù)塊的形式讀寫文件,這里提供了實(shí)例代碼舉例說(shuō)明,有需要的小伙伴可以參考下2016-07-07Qt5.9實(shí)現(xiàn)簡(jiǎn)單的多線程實(shí)例(類QThread)
Qt開啟多線程,主要用到類QThread。用一個(gè)類繼承QThread,然后重新改寫虛函數(shù)run()。具有一定的參考價(jià)值,感興趣的可以了解一下2021-09-09C語(yǔ)言修煉之路悟徹?cái)?shù)組真妙理?巧用下標(biāo)破萬(wàn)敵上篇
在C語(yǔ)言和C++等語(yǔ)言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲(chǔ)類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來(lái)指向若干個(gè)字符串,使字符串處理更加方便、靈活2022-02-02