文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C++ 中如何结束 while (cin>>str) 的输入

2024-04-02 19:55

关注

如何结束 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中 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯