C++?中如何結(jié)束?while?(cin>>str)?的輸入
如何結(jié)束 while (cin>>str) 的輸入
cin
當(dāng)從鍵盤上進(jìn)行輸入并按下回車時,輸入的字符就會被送到輸入緩沖區(qū)進(jìn)行存儲,且以空白字符為分隔符。
window 下
如果本行存在輸入字符的情況下,在行尾加 ctrl+z 并且回車之后并不會結(jié)束輸入,而是將 ctrl+z 當(dāng)作一個字符來解釋,將該字符當(dāng)作普通字符緩沖并輸出。
要結(jié)束輸入需要在新行(即輸入完成之后回車到新行)之后,輸入 ctrl+z 并回車結(jié)束輸入。
linux 下
在新行開頭,輸入ctrl+d,即為 EOF,此時輸入結(jié)束。
在行尾結(jié)束輸入 ctrl+d 則表示輸出輸入緩存區(qū)的數(shù)據(jù),此時再次輸入 ctrl+d 就代表 EOF,從而結(jié)束輸入。
while(cin>>str);auto;find();
while(cin>>str);auto;find();
想嘗試一些新的料理,每個料理需要一些不同的材料,問完成所有的料理需要準(zhǔn)備多少種不同的材料。
每個輸入包含 1 個測試用例。每個測試用例的第 i 行,表示完成第 i 件料理需要哪些材料,各個材料用空格隔開,輸入只包含大寫英文字母和空格,輸入文件不超過 50 行,每一行不超過 50 個字符。輸出一行一個數(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 工具——編輯選項——程序——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é)
問題一:Vector和Set的區(qū)別
首先:Vector是數(shù)組,set是一個集合,內(nèi)部的元素不會重復(fù),同時它會自動進(jìn)行排序,也是從小到大;
其次:由于存儲結(jié)構(gòu)不同,vector擅長于解決某個位置是什么值的問題,而set擅長于解決,某個元素在那個位置的問題,知道元素的內(nèi)容,
查找它的位置。因此vector特別好的支持隨機(jī)訪問,而set不支持(不支持下標(biāo)訪問)
問題二:find() 返回符合搜索條件的字符區(qū)的第一個字符的索引,沒找到目標(biāo)就返回npos。
if(str.find("jia")==string::npos),沒找到==后必有
第二個參數(shù):(可有可無)指出string內(nèi)的搜索起點的索引
第三個參數(shù):(可有可無)指出搜出的字符個數(shù)
問題三:auto在 Dev-C++ 5.4.0的使用
問題四:while(cin>>str)的使用 windows中
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Qt5.9實現(xiàn)簡單的多線程實例(類QThread)
Qt開啟多線程,主要用到類QThread。用一個類繼承QThread,然后重新改寫虛函數(shù)run()。具有一定的參考價值,感興趣的可以了解一下2021-09-09C語言修煉之路悟徹數(shù)組真妙理?巧用下標(biāo)破萬敵上篇
在C語言和C++等語言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來指向若干個字符串,使字符串處理更加方便、靈活2022-02-02