日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C++?中如何結束?while?(cin>>str)?的輸入_C 語言

作者:止步聽風 ? 更新時間: 2022-09-17 編程語言

如何結束 while (cin>>str) 的輸入

cin

當從鍵盤上進行輸入并按下回車時,輸入的字符就會被送到輸入緩沖區進行存儲,且以空白字符為分隔符。

window 下

如果本行存在輸入字符的情況下,在行尾加 ctrl+z 并且回車之后并不會結束輸入,而是將 ctrl+z 當作一個字符來解釋,將該字符當作普通字符緩沖并輸出。

要結束輸入需要在新行(即輸入完成之后回車到新行)之后,輸入 ctrl+z 并回車結束輸入。

linux 下

在新行開頭,輸入ctrl+d,即為 EOF,此時輸入結束。

在行尾結束輸入 ctrl+d 則表示輸出輸入緩存區的數據,此時再次輸入 ctrl+d 就代表 EOF,從而結束輸入。

while(cin>>str);auto;find();

while(cin>>str);auto;find();

想嘗試一些新的料理,每個料理需要一些不同的材料,問完成所有的料理需要準備多少種不同的材料。

每個輸入包含 1 個測試用例。每個測試用例的第 i 行,表示完成第 i 件料理需要哪些材料,各個材料用空格隔開,輸入只包含大寫英文字母和空格,輸入文件不超過 50 行,每一行不超過 50 個字符。輸出一行一個數字表示完成所有料理需要多少種不同的材料。

舉例:BUTTER FLOUR HONEY FLOUR EGG 輸出:4

方法一SET

#include <iostream>
?#include <set>
?#include <string>
?using namespace std;
?int main() {
?string str;
?set<string> datas;
?//輸入流結束的條件就是:^z 之前不能有任何字符輸入(回車除外),否則 ^z 起不到流結束的作用。?
?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;
?}

學習總結

問題一:Vector和Set的區別?

首先:Vector是數組,set是一個集合,內部的元素不會重復,同時它會自動進行排序,也是從小到大;?

其次:由于存儲結構不同,vector擅長于解決某個位置是什么值的問題,而set擅長于解決,某個元素在那個位置的問題,知道元素的內容,

查找它的位置。因此vector特別好的支持隨機訪問,而set不支持(不支持下標訪問)

問題二:find() 返回符合搜索條件的字符區的第一個字符的索引,沒找到目標就返回npos。

if(str.find("jia")==string::npos),沒找到==后必有

第二個參數:(可有可無)指出string內的搜索起點的索引

第三個參數:(可有可無)指出搜出的字符個數?

問題三:auto在 Dev-C++ 5.4.0的使用

問題四:while(cin>>str)的使用 windows中?

原文鏈接:https://blog.csdn.net/SAKURASANN/article/details/102946779

欄目分類
最近更新