55>>c++ 缓冲区的刷新

利用string 对象查看缓冲区的变化,因为每个string对象在输入时会以空格作为分界。

#include<iostream>
#include<string>
using namespace std;

int main()
{
	string s1;
	string s2;
	string s3;

	cout<< "this is a while circle, and it‘s different with getline():"<<endl;
	string word;
	while( cin>>word )
	{
		cout<<word<<endl;
		if( word == "exit" )
			break;
	}

	cout<<"first try; input a char, then output; three times:"<<endl;
	cin>>s1;
	cout<<s1<<endl;
	cin>>s2;
	cout<<s2<<endl;
	cin>>s3;
	cout<<s3<<endl;

	cout<<"second try; input three char once, then output:"<<endl;
	cin>>s1>>s2>>s3;
	cout<<s1<<endl;
	cout<<"s2:"<<s2<<endl;
	cout<<"s3:"<<s3<<endl;
	cout<<"s1:"<<s1<<endl;
	return 0;
}

在循环时,如果输入的是用空格隔开的几个string值,那么将依次输出这几个值。

而在非循环时,会将空格隔开的几个值依次赋值给要求输入的string变量。

时间: 2024-10-22 16:08:21

55>>c++ 缓冲区的刷新的相关文章

C++输入输出缓冲区的刷新问题

当我们对文件流进行操作的时候,它们与一个streambuf 类型的缓存(buffer)联系在一起.这个缓存(buffer)实际是一块内存空间,作为流(stream)和物理文件的媒介.例如,对于一个输出流, 每次成员函数put  (写一个单个字符)被调用,这个字符不是直接被写入该输出流所对应的物理文件中的,而是首先被插入到该流的缓存(buffer)中. 当缓存被排放出来(flush)时,它里面的所有数据或者被写入物理媒质中(如果是一个输出流的话),或者简单的被抹掉(如果是一个输入流的话).这个过程

10 python从键盘获取输入、刷新缓冲区

1 ---python从键盘获取输入有两种方法: 2 3 4 input与raw_input比较: 5 6 #1.input函数:需要以合法的python表达式形式输入 7 8 例1: 9 >>> name = input ("what is your name ?") 10 what is your name ? 11 12 当输入为数值型:3时,通过:当输入为字符型:lucy时,抱错: 13 14 例2: 15 str = input("Enter yo

C#在工作线程刷新主界面控件状态小结,单例模式、委托

今日项目开发中需要在服务器界面实时显示客户端连接状态,使用C#的反射机制解决了问题.由于项目比较复杂,现结合一个小例子,对使用C#委托反射机制刷新主界面上的控件状态进行简单小结,希望对新手有所帮助. 一.新建一个C# winform工程:Form_MainUI,界面布局如图1. 代码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data;

C/C++中关于输入输出缓冲区和流的概念理解

(本文章关于缓冲区概念的理解部分取自:http://developer.51cto.com/art/201107/277186.htm) 首先可以看下快递的寄送过程: 源地址(商家的仓库)——中转地(快递公司的仓库)——目的地(买家) 我们从淘宝商家买衣服,商家通过快递公司把商品送到我们手里的这个过程可以形象的解释下缓存区和流的这个概念. 1, 淘宝商家不会亲自把商品给买家送过来的,因为这样效率太低了,商家会通过快递公司这个中转,然后快递公司再把东西送给买家.淘宝商家就是在键盘上打字,买家就是程

C++:IO缓冲区

1. C++每一个流对象都维护一个缓冲区,缓冲区本质上是一个用于存储输入和输出序列的字符数组,并通过三个指针(begin_pointer,next_pointer,end_pointer)描述,缓冲区按刷新类型分为全缓冲,行缓冲和无缓冲.(具体见<C++ 输入输出流与本地化>) 2. 常用的缓冲区函数 函数 作用 int peek() 返回缓冲区下一字符,指针并不后移 void get(char ch) 将缓冲区下一字符取出赋给ch,指针后移 char get() 将缓冲区下一字符取出并返回,

Android之自定义控件-下拉刷新

实现效果: 图片素材:         --> 首先, 写先下拉刷新时的刷新布局 pull_to_refresh.xml: 1 <resources> 2 <string name="app_name">PullToRefreshTest</string> 3 <string name="pull_to_refresh">下拉可以刷新</string> 4 <string name="

C++编程中对缓冲区的理解(OS默认4096大小的缓冲区,有例子,很形象)

什么是缓冲区缓冲区又称为缓存,它是内存空间的一部分.也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区.缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区. 为什么要引入缓冲区我们为什么要引入缓冲区呢?比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再去磁盘中读取,这样就可以减少磁盘的读写次数,再加上计算机对缓冲区的操作大大快于对磁盘的操作,故应用缓冲区可大大提高

关于getchar函数缓冲区的问题

最近,看到有同学问我关于getchar()这个函数缓冲区的问题,结合我以前的学习,我将对getchar()进行一次总结,当然,这些都是别人已经提过的东西,我只是总结,接下来我们来看看. 首先,用getchar()函数进行字符的输入,并不是直接从键盘这个硬件中读取输入的字符,而是从"输入缓冲区"中得到的字符.输入缓冲区是一个字符的队列,其中存储了所有你尚未读取的字符.每次调用getchar函数,它就会从输入缓冲区中读出第一个字符,并把这个字符从输入缓冲区中清除. 然而,这个输入缓冲区的设

对一个字符数组连续用gets函数出现的问题(缓冲区内容补充)

昨天调试程序(见下面代码)遇到下面一个问题: #include<stdio.h> int main() { int i = 1; while(i) { char str[100]; printf("please input a str:\n"); gets(str); puts(str); printf("continue:1,break:0\n"); scanf("%d",&i); } return 0; } 咦!!!我还没