C++中利用输入输入流进行一行输入

简介: 我们在使用istream类的对象cin进行一行输入的时候 往往遇到N多问题  比如我这样做 char  buf [100]  ; cin>>buf ; cout

我们在使用istream类的对象cin进行一行输入的时候 往往遇到N多问题 

比如我这样做

char  buf [100]  ;

cin>>buf ;

cout<<buf ;

这时候如果我们输入了  ddd  ddd  那么只会输出 前三个ddd  ,从而达不到我们预期的效果   这是因为流的设计是以空字符来结束提取的 ,空格是空字符 所以后面三个d就没有提取到

buf中。 

istream提供了 get  和getline 两个函数进行行的读取 ,但是在对于文本文件的操作时候 ,我们无疑选用getline  ,这是从他们的提取特性来分析的 。

get在遇到分隔符的时候(默认是换行) 就会停止读取 ,并且以0结束 ,并且不会提取分隔符,分隔符仍保留在输入流里面,当下次再次调用cin.get()的时候那么就会直接返回

而不会读取任何数据,因为在读取开始就遇到了分隔符的缘故 。

getline则不同 他在get的基础上从输入流中删除了 分隔符 并且不保存在结果buffer中 ,从而可以使我们不断的读取一行数据  。

 

流也提供了许许多多的函数进行功能的测试

!stream  重载了!来测试流是否正确

eof    是否到达文件结尾

bad  是否错误

good是否正确  等等函数

clear 清空流 。。。。

 

read和wirte则可以对内存块进行读写 我们可以清晰的看到细节部分

 

 

 

目录
相关文章
|
C语言 C++ 开发者
C++输入流和输出流介绍
C++ 又可以称为“带类的 C”,即可以理解为 C++ 是 C 语言的基础上增加了面向对象(类和对象)。在此基础上,学过 C 语言的读者应该知道,它有一整套完成数据读写(I/O)的解决方案: 使用 scanf()、gets() 等函数从键盘读取数据,使用 printf()、puts() 等函数向屏幕上输出数据; 使用 fscanf()、fgets() 等函数读取文件中的数据,使用 fprintf()、fputs() 等函数向文件中写入数据。 要知道,C 语言的这套 I/O 解决方案也适用于 C++ 程序,但 C++ 并没有“偷懒”,它自己独立开发了一套全新的 I/O 解决方案,其中就包含
235 0
|
存储 算法 定位技术
c++游戏制作指南(四):c++实现数据的存储和读取(输入流fstream)
c++游戏制作指南(四):c++实现数据的存储和读取(输入流fstream)
908 0
|
C++
时间类-输入和输出(C++版本)
请设计时间类 MYTIME,它包含三个私有数据成员:hour, minute, second,均为整数,分别表示时、分、秒。让我们从这里起步,一步一步地完成一个功能完备的时间类,可以适用于处理任何程序中的时间数据。:时间的输出函数不得影响之后其它数据的输出。
376 0
时间类-输入和输出(C++版本)
|
编译器 C语言 C++
【C++要笑着学】关键字 | 命名空间 | 输入和输出(二)
本章将正式开始 C++ 的学习,将深入浅出地讲解。本篇将以 HelloWorld 开始,以 HelloWorld 结束。通过这段代码,讲解C++中的命名空间和输入与输出。话不多说,让我们开始吧
235 0
【C++要笑着学】关键字 | 命名空间 | 输入和输出(二)
|
编译器 C语言 C++
【C++要笑着学】关键字 | 命名空间 | 输入和输出(一)
本章将正式开始 C++ 的学习,将深入浅出地讲解。本篇将以 HelloWorld 开始,以 HelloWorld 结束。通过这段代码,讲解C++中的命名空间和输入与输出。话不多说,让我们开始吧
279 0
【C++要笑着学】关键字 | 命名空间 | 输入和输出(一)
|
编译器 C语言 C++
C++程序设计——命名空间、输入&输出、缺省参数
C++程序设计——命名空间、输入&输出、缺省参数
281 0
C++程序设计——命名空间、输入&输出、缺省参数
|
C语言 C++
C++——输入与输出及缺省参数
介绍C++的输入输出及缺省参数
310 0
C++——输入与输出及缺省参数
|
存储 监控 C++
C++ 输入的是1.3变1.29999995问题
C++ 输入的是1.3变1.29999995问题
206 0
C++ 输入的是1.3变1.29999995问题