用户名: 密码: 免费注册 忘记密码? 网站地图 | 加入收藏 | 设为首页
首页 | 新闻 | 工具 | 系统 | 办公 | 聊天 | 多媒体 | 网页 | 运营 | 平面 | 欣赏 | 数据库 | 程序 | 服务器 | 组网
网页 | 3dmax | Ghost | Windows Xp| Dreamweaver | photoshop | Flash | office | Alexa | Css | QQ | Asp | PHP | Jsp | Access
Flash MX 2004入门 | 网站推广策略 | CorelDRAW入门 | ASP学习 | 网站建设大师功 | Word入门
  iTbulo.com > 学院 > 正文
C++的iostream标准库介绍以及对左移与右移运算符的重载
iTbulo.COM 2006-4-5 管宁()

  如果错误发生,那么流状态既被标记为错误,你必须清除这些错误状态,以使你的程序能正确适当地继续运行。要清除错误状态,需使用clear()函数。此函数带一个参数,它是你将要设为当前状态的标志值。,只要将ios::goodbit作为实参。

示例代码如下:

 C++ 代码

//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者

#include <iostream>
using namespace std;

int main()
{
int a;
cin>>a;
cout<<cin.rdstate()< cin.clear(ios::goodbit);
cout<<cin.rdstate()< system("pause");
}



  通常当我们发现输入有错又需要改正的时候,使用clear()更改标记为正确后,同时也需要使用get()成员函数清除输入缓冲区,以达到重复输入的目的。

示例代码如下:
 C++ 代码
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream>
using namespace std;

int main()
{
int a;
while(1)
{
cin>>a;
if(!cin)//条件可改写为cin.fail()
{
cout<<"输入有错!请重新输入"< cin.clear();
cin.get();
}
else
{
cout< break;
}
}
system("pause");
}


最后再给出一个对文件流错误标记处理的例子,巩固学习,代码如下:

 C++ 代码
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
ifstream myfile("c:\\1.txt",ios_base::in,0);
if(myfile.fail())
{
cout<<"文件读取失败或指定文件不存在!"< }
else
{
char ch;
while(myfile.get(ch))
{
cout< }
if(myfile.eof())
{
cout<<"文件内容已经全部读完"< }
while(myfile.get(ch))
{
cout< }
}
system("pause");
}

  C语言提供了格式化输入输出的方法,C++也同样,但是C++的控制符使用起来更为简单方便,在c++下有两中方法控制格式化输入输出。
  1.有流对象的成员函数。
  例如,下列程序以成员函数的方式控制输出的精度:

 C++ 代码
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者

#include <iostream>
using namespace std;

int main()
{
float pi=3.14159f;
cout< cout.precision(2);
cout< system("pause");
}


  2.使用C++输入输出控制符,控制符是在拖文件iomanip.h中定义的对象,与成员函数有一样的效果,控制符不必像成员函数学那样单独调用,它可以直接插入流中使用。
  例如,下列程序以控制符的方式控制输出的精度:
 C++ 代码
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者

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

int main()
{
float pi=3.14159f;
cout< cout< cout< system("pause");
}



  下表我们列出了一些比较常用的控制符号,由于篇幅有限读者请根据自己的需要查阅相关书籍:

  对于iostream标准库来说包含了众多的成员函数,各函数都有其自身的作用,篇幅问题笔者在这里不能一一说明例举,由于标准输入对象cin提供输入的时候会自动以空格作为分界,给我们获取一行带有空格的完整字符串带来了困难,在这里补充一个非常用有的成员函数----getline()。

  其函数原型为:
  getlin(chiar *str,int size,char='\n');

  第一个参数是字符数组,用于存放整行文本,第二个参数读取的最大字符个数,第三个参数为作为分界界限的字符,默认识是\n,换行符。

示例代码如下:

 C++ 代码
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者

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

int main()
{
char str[100];
cin.getline(str,sizeof(str),'\n');
cout< system("pause");
}

上一页  [1] [2] [3] [4] [5] [6] 下一页

文章搜索
相关资讯
相关文章 相关下载
C与C++中标准输入实现方式上的一点区别
将成员函数指针强制转换成void*指针
C与C++中标准输入实现方式上的一点区别
为C++标准库容器写自己的内存分配程序
缓冲区溢出还是问题吗?C++/CLI安全编码
焦点信息