C++?中如何結(jié)束?while?(cin>>str)?的輸入
如何結(jié)束 while (cin>>str) 的輸入
cin
當(dāng)從鍵盤上進行輸入并按下回車時,輸入的字符就會被送到輸入緩沖區(qū)進行存儲,且以空白字符為分隔符。
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ù),同時它會自動進行排序,也是從小到大;
其次:由于存儲結(jié)構(gòu)不同,vector擅長于解決某個位置是什么值的問題,而set擅長于解決,某個元素在那個位置的問題,知道元素的內(nèi)容,
查找它的位置。因此vector特別好的支持隨機訪問,而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)文章
詳解C++如何實現(xiàn)在Word文檔中創(chuàng)建列表
這篇文章主要為大家詳細介紹了介紹如何使用C++在Word文檔中創(chuàng)建編號列表、項目符號列表和多級列表,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05
C++類與對象深入之構(gòu)造函數(shù)與析構(gòu)函數(shù)詳解
朋友們好,這篇播客我們繼續(xù)C++的初階學(xué)習(xí),現(xiàn)在對我們對C++非常重要的一個知識點做出總結(jié),整理出來一篇博客供我們一起復(fù)習(xí)和學(xué)習(xí),如果文章中有理解不當(dāng)?shù)牡胤?還希望朋友們在評論區(qū)指出,我們相互學(xué)習(xí),共同進步2022-06-06
C語言中的strdup()函數(shù)和其與strcpy()函數(shù)的區(qū)別
這篇文章主要介紹了C語言中的strdup()函數(shù)和其與strcpy()函數(shù)的區(qū)別,同樣用于拷貝字符串的兩個函數(shù)的異同值得注意,需要的朋友可以參考下2015-08-08
C語言通過三步翻轉(zhuǎn)法實現(xiàn)單詞倒置詳解
這篇文章主要為大家分享了用三步翻轉(zhuǎn)法將一句話的單詞進行倒置的方法,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-05-05
隊列的動態(tài)鏈?zhǔn)酱鎯崿F(xiàn)代碼分享
DynaLnkQueue.cpp - 動態(tài)鏈?zhǔn)疥犃?,即隊列的動態(tài)鏈?zhǔn)酱鎯崿F(xiàn)2014-02-02

