码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 输入输出流 总结

时间:2014-06-06 07:28:55      阅读:394      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

1.ostream & operator<<(int);

重载了<<符号,用于对int类型的输出。为什么要返回ostream的引用呢?

例如:

  cout<< "1122"  << "2345" <<endl;

  那么当输出“1122"的时候,返回了cout,也就是:  cout<<"1122"返回为 cout,然后可以继续像cout<<"2345"<<endl;这样输出。

2.对数组和指针的输出

ostream可以对下面的指针类型进行输出:

const signed char *

const unsigned char *

const char *

void *     //打印地址的数值表示

eg:

bubuko.com,布布扣
char a[]="sdwadwada"    //int类型是不能这么打印的 智能对char数组

cout<<a<<endl;  //  显示:sdwadwada

char* a="sdwadwada"   

cout<<a<<endl; //sdwadwada

cout<<&a<<endl;//打印的是地址

cout<<(void *)a<<endl;  //打印的是地址
bubuko.com,布布扣

 

3.

std::cout.put(66.5); //B

std::cout.put(65); //A

return 0;

4.强制转换

long val=560031841;

cout.write((char*) & val, sizeof(long)); //讲显示4个字符形式的数据

bubuko.com,布布扣

过程是:先取数字的地址强制转换为char*类型

5.cin输入

检查输入: 它们跳过空白(空格、换行符和制表符)直到遇到非空白字符开始。

读取范围: 它们读取从非空白字符开始到与目标类型不匹配的第一个字符之间的全部内容。

char a[20];

int b;

char c;

cin>> a  >> b >> c;

输入: yuandedong 123 h

a:  yuandedong

b: 123

c:  h

读完yuandedong后 就返回cin 相当于cin>>b>>c; 因此不可能将h读到a中。

6.cin输入的注意事项

看下例:

bubuko.com,布布扣

结果如下图:

bubuko.com,布布扣,不能继续输入New num。

原因: 当读取到文件尾部的时候,也就是最开始输入完了后, 流状态将eofbit设置为1,只有当eofbit、badbit、failbit都为0的时候一切才是顺利的。才可以继续读下去。因此我们可以接下来使用cin.clear()对stream状态进行重置。

如下:

bubuko.com,布布扣

bubuko.com,布布扣

7.get  cin 的用法

  get(char &) 和get(void ) 方法提供了不跳过空白的单字符输入功能。

  get(char *, int , char)和getline(char *, int , char)在默认情况下读取整行而不是一个单词。

  它们都不会跳过空白,也不会进行数据转换。

cin跳过空白(空格、换行符和制表符)直到遇到非空白字符开始。

bubuko.com,布布扣bubuko.com,布布扣

版本2:

bubuko.com,布布扣
void main()

{

char ch;

while(cin.get(ch))

{

  cout<<ch<<" ";

}

}
bubuko.com,布布扣

 

版本3:

char ch;

ch=cin.get();

while(ch!=‘\n‘)

  {

     cout<<ch<<" "

  ch=cin.get();

  }

到达文件尾后,cin.get(void)都将返回值EOF,因此可以这样来读取输入:

bubuko.com,布布扣

将ch类型申明为int而不是char,因为值EOF可能无法使用char类型来表示。

bubuko.com,布布扣bubuko.com,布布扣

由以上实验结果可以得出:

1.cin确实跳过了空白格,结束符也给跳过了进入了无限循环。

8. 文件输入输出

8.1 头文件: fstream

    包含该文件便自动包含iostream文件,因此不必显示包含iostream头文件。

   ostream是ofstream的基类,istream同样,因此可以使用所有的ostream的方法,包括插入操作符定义、格式化方法和控制符等等。

   eg:

         ifstream fin(".....txt");

         char ch;

         while(fin.get(ch))   //和cin的方法是一样的。

{

        ....

}

    if(!fin.is_open())

{

   ...

}

8.2 打开多个文件

bubuko.com,布布扣  cin.clear()也可以不要,视情况而定。

命令行处理:

bubuko.com,布布扣

C++ 输入输出流 总结,布布扣,bubuko.com

C++ 输入输出流 总结

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/menghuizuotian/p/3767619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!