cin.get();cin.clear();cin.sync()
先看代码:
#include<iostream>
using namespace std;
int main(){
int c,x;
cout<<"输入大小"<<endl;
cin>>c;
x=c+;
cin.sync();//神器;用来清空输入缓冲区剩余的值的
char a[x];
cout<<"输入内容"<<endl;//因为输入大小后直接输入了回车,回车在缓冲区,没有被丢弃,所以a[]直接取的缓冲区的值;直接结束;
cin.get(a,x);//cin.get的参数应该大1;多出一个填充回车;
for(int i=;i<c;i++){
cout<<a[i]<<endl;
}
cout<<sizeof(a)<<endl;
return ;
}
当不用cin.sync()时,cin一个字符,用“回车”结束,但是cin不读入“回车”这个字符,所以回车会留在缓冲区,当cin.get()时,它首先读取缓冲区的内容;然后发现没有才会让你在屏幕输入,但是有内容它就会先读取,所以马上就结束了。
cin.get() this function can read "space" to the char array; Like this:cin.get(char*a,int b),"a" is the name of array,"b"is the number of read characters;
tips: because cin.get() also can accept "Enter" ,so we must made the "b" to be "+1" then the number you want.
cin.clear();的作用是清空错误的标志;并不是清空缓冲区的;详情请见:http://www.cnblogs.com/tonglingliangyong/p/3908463.html
cin.get();cin.clear();cin.sync()的更多相关文章
- cin详解(cin.get()、cin.getline()、cin.clear()、cin.sync())
在C中,输入输出用scanf和printf,在输入数据的同时还需说明数据的类型,如果输入数据较多,那就很麻烦,而C++中也有相似的东西cin和cout,它们来自C++的一个名叫" iostr ...
- cin详解(get()、getline()、clear()、sync())
简述 在C中,输入输出用scanf和printf,在输入数据的同时还需说明数据的类型,如果输入数据较多,那就很麻烦,而C++中也有相似的东西cin和cout,它们来自C++的一个名叫" io ...
- (C/C++学习)3.C++中cin的成员函数(cin.get();cin.getine()……)
说明:流输入运算符,在一定程度上为C++程序的开发提供了很多便利,我们可以避免C语言那种繁琐的输入格式,比如在输入一个数值时,还需指定其格式,而cin以及cout则不需要.但是cin也有一些缺陷,比如 ...
- clear()、sync()、ignore()
#include <iostream> using namespace std; int main() { int a; cin>>a; cout<<cin.rds ...
- 注意当cin.getline、和cin 合用的时候
1. getline有两种,一个是string的(getline(cin,s)),一个是istream的(cin.getline(s,maxsize,delim)). 2. 当用cin输入了数据后,在 ...
- C++中cin.clear()的用法
我们谈谈cin.clear的作用,第一次看到这东西,很多人以为就是清空cin里面的数据流,而实际上却与此相差很远,首先我们看看以下代码: #include <iostream> usin ...
- C++中cin.get(),cin.getline(),cin>>,gets(),cin.clear()使用总结
1.cin.get() 实质:类istream所定义对象cin的重载成员函数 用于读取单字符 istream& get(char&) int get(void) 用于读取字符 ...
- UVA 1398 Meteor
传送门 Solution: 记一颗流星在视野内的时间段为(L, R), 为了使所有(L, R)都取整数,首先将坐标放大. 放大倍数可取为 LCM(1, 2, ..., 10)= 2520 接着计算:从 ...
- Path of Equal Weight (DFS)
Path of Equal Weight (DFS) Given a non-empty tree with root R, and with weight Wi assigned to each ...
随机推荐
- visual studio code——运行python
How to run Python in Visual Studio Code Getting Started with Python in VS Code python教程 vs code 安装py ...
- 一梦江湖费六年——QQ群聊天分析
本文结构: 一.那些年我们加过的QQ群 二.数据读入和整理(一)--来自蓝翔的挖掘机 二.数据读入和整理(二)--你不知道的事 三.聊天宏观(1)--寤寐思服 三.聊天宏观(2)日月篇 三.聊天宏观( ...
- Windows 下Jenkins进程误删,如何重启
手残误删了Jenkins运行的java进程,结果.... 用管理员身份启动cmd 然后进入jenkins目录.运行 net start jenkins 否则会报系统错误5 延伸: net stop j ...
- Git Learning2 GitHub upload
1.在自己的github上创建一个仓库 2.git remote add [name] [link] 使用git来增加一个link的别名 3.git push [linkname] [分支名] 4.g ...
- QT qss资源文件与代码分离
在最近的Qt相关项目开发中,有不同客户提出更改logo图片的需求,每次更换一张图片需要重新添加到.qrc资源文件,并重新编译源代码生产可执行文件,操作效率极低,频繁修改源代码也 容易引起其他不可靠问题 ...
- 《c++ concurrency in action》读书笔记2--线程管理
一.线程的启动 1. 每个c++程序至少有一个线程,是由C++ runtime启动的 2. 在c++11中,通过一个std::thread 对象启动线程.可以向std::thread传递一个函数,或者 ...
- jemter分布式部署及linux下分布式脚本执行
jmeter进行接口性能测试,占用内存较大,在模拟千万计并发用户时,使用分布式部署进行分压测试. 操作步骤:选择一台机器作为调度机,其他机器作为执行机 一.jmeter分布式部署 前提条件:A.执行机 ...
- React文档(二十二)context
React中,通过React组件可以很容易地追踪数据流.当你关注一个组件,你可以发现哪一个props被传递了,这样使得你的应用很容被推断. 在一些情况下,你想要传递数据通过组件树而不需要去手动在每一层 ...
- UnicodeEncodeError: 'gbk' codec can't encode character '\xee'
在将爬取到的内容写入文件时候报了这个错误,解决方案是在open()的时候给encoding参数传'utf-8'就好了,因为网页的编码就是utf-8. with open('douban.html',' ...
- 学习笔记(一)HTML基础
HTML 基础 HTML 简介 HTML (Hyper textmarkup language) 中文译名为"超文本标记语言",主要是通过 HTML 标记对网页中的文本.图片.声音 ...