C++利用cin.get和cin直接输入任意size的vector<string>
2021/10/23 22:12:53
本文主要是介绍C++利用cin.get和cin直接输入任意size的vector<string>,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- 前言
- 一、简述两者之间的区别
- 二、代码以及测试
- 1.代码
- 2.测试
- 总结
前言
cin和cin.get()的混合使用经常会带来一些奇怪的bug,这是因为两个函数的读取奇数略有不同,详情可见C++ cin.get用法。
提示:以下是本篇文章正文内容,下面案例可供参考
一、简述两者之间的区别
当cin.get在cin之后使用的时候,cin并不会读取字符结尾的空格,但是接下来使用的cin.get()会将cin不会读入的回车符读入;cin不会读入ctrl+z,但是,cin.get会直接读入,并判断为EOF,需要注意的是EOF在C++中常常被判断为-1,而不是char类型,所以对于cin.get函数的赋值注意使用int整型,而不要使用char类型。
二、代码以及测试
1.代码
代码如下(示例):
#include <iostream> #include <string> #include <vector> using namespace std; int main(){ vector<string> words = {},result; int maxWidth; cin >> maxWidth;//输入fullJustify函数的另一个参数 string temp; int ch; cin >> temp; //cin并不会读取结尾的空格,但是接下来使用的cin.get()会读入,所以第一个temp直接用cin输入,之后再用cin.get()判断是否输入完毕;此外,cin不会读入ctrl+z,但是,cin.get会直接读入,并判断为EOF while ((ch=cin.get()) != EOF) { words.push_back(temp); cin >> temp; } result=fullJustify(words, maxWidth); for (int i = 0; i < result.size(); i++) { cout << result[i] << endl; } return 0; }
2.测试
测试样例输入:
16 I love China! ^z
输出控制台调试:
都看到这里了,点个赞再走吧~
总结
cin在某些情况下会比getline函数的输入更有安全性,使用cin以及cin.get()函数可以实现vector<string> 类型的任意长度输入,使用ctrl+z可以终止输入。
这篇关于C++利用cin.get和cin直接输入任意size的vector<string>的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain
- 2024-06-19EntBot.ai: AI Website Chatbot for Product Guides and Development Doc
- 2024-06-17zero-shot-learning-definition-examples-comparison
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享