外贸做的社交网站有哪些,网站建设设计原则,公共法律服务网站建设总结,win7优化大师官方网站1.前言
由于本科没有学过c语言#xff0c;研究生阶段接触c上手有点困难#xff0c;今天遇到关于通过cin.get()来让黑框维持的原因。
2.思考
cin.get()维持黑框不消失的原因一言蔽之就是等待输入。等待键盘的输入内容并回车#xff08;一般是回车#xff09;后cin.get()才…1.前言
由于本科没有学过c语言研究生阶段接触c上手有点困难今天遇到关于通过cin.get()来让黑框维持的原因。
2.思考
cin.get()维持黑框不消失的原因一言蔽之就是等待输入。等待键盘的输入内容并回车一般是回车后cin.get()才能结束然后黑框也随之消失。
2.1 从键盘输入
使用输入操作符读取单词,标准库中提供了iostream可以使用内置的cin对象调用重载的输入操作符来读取键盘输入。 string str;// 读取键盘输入遇到空白符停止cin str;cout strendl;这种方式的特点是忽略开始的空白符遇到下一个空白符空格、回车、制表等就会停止。所以如果我们输入“hello world”那么读取给str的只有“hello”因为hello后面是空格属于空白符所以停止。这相当于读取了一个“单词”。 剩下的内容“ world”其实也没有丢而是保存在了输入流的“输入队列”里。如果我们想读取更多的输入信息就需要使用更多的string对象来获取 string str1, str2;cin str1 str2;cout str1 str2 endl;这样如果输入“hello world”就可以输出“helloworld”。虽然空格还在读取hello后的输入流中但是str2的读取忽略了world之前的空格
接下来看这里的代码 string str1;cin str1;cout str1 endl;cin.get();cin.get();运行效果是输入hello后输出hello同时黑框仍然保持存在即等待输入 我们输入的内容是hello但是我们在hello后有一个回车符读给str1的内容为hello 这里为什么要写两个cin.get()第一个用来处理之前保留在输入队列的回车符第二个用来等待下一次输入让窗口保持开启状态。 接下来继续 以如下代码为例
#includeiostream
using namespace std;
//cin以空白字符串为结束空格、回车、制表
int main() {string str1;string str2;cin str1;cout str1 endl;cin.get();cin str2;cin.get();cout str2 endl;cin.get();//cin.get();//cin.get();
}该过程大体如下
标准库中提供了iostream,使用内置的cin对象调用重载操作符来读取键盘输入。
我们输入hello并回车此时输入流中就有了hello和回车符
将hello读取给str1,此时输入流还剩下回车符
第8行代码输出str1的内容
第9行代码中使用cin.get()获取输入流的内容读取了回车返回空行。
第10行代码继续cin对象重载读取键盘输入并将输入内容给str2
我们输入say加上回车
str2的内容为say,因为say后面是空白符
输入流中还剩下回车
第11行代码使用cin.get()获取输入流中的回车符
第12行代码输出str2的内容say
第14行代码 cin.get()等待下一次输入如果不输入内容并回车的话窗口一直保持总结一下
1.空白符包括空格回车制表符等
2.cinstr是获取键盘输入遇到空白符停止将内容给str剩下的部分仍然在输入流中
3.cin.get()获取输入流中的内容可以读取空白符
4.cinstr1str2str3等此类使用多个str对象他会忽略开始的空白符遇到下一个空白符空格、回车、制表等就会停止将该部分中间的内容依次传给str.例如 我们输入 “say hello world” 那么str1就是say,str2就是hello因为他会忽略hello前的空格和后的空格同理str3是world他会忽略world前的空格和后的回车符拓展 对于代码 string str1;cin str1;cout str1 endl;cin.get();cin.get();如果我们输入的内容是 hello然后空格然后回车那么黑框会保持吗答案是不会的因为str1存储输入流的hello第一个cin.get()获取输入流的空白符空格返回空行第二个cin.get()获取输入流的回车符返回空行没有cin.get()继续等待输入了 如果写成 string str1;cin str1;cout str1 endl;cin.get();cin.get();cin.get();则可以保持黑框等待输入