没看懂,以后上。
2012-3-26
C++的输入输出由标准库提供。标准库定义了一族类型,支持对文件和控制窗口等设备的读写。
主要有下面几个类型:
iostream
istream从流中读取
ostream:写到流中去
iostream:对流进行读写;从istream和ostream派生而来
fstream
ifstream:从文件中读取;由istream派生
ofstream:写到文件中去;由ostream派生
fstream:读写文件;由isstream派生
sstream
istringstream:从string队形中读取,由istream派生
ostringstream:写到string中去;由ostream派生
stringstream:对string对象进行读写;由iostream派生
流状态查询和管理
IO标准库管理了一系列的条件状态成员,用来标记给定的IO对象是否处于可用范围,或者碰到了哪种特定的错误。
可以用下列函数判定文件流状态:
is_open():判定流对象是否与一个打开的文件相联系,若是,返回trun,否则返回false;
good():刚进行的操作成功时返回true,否则返回false;
fail():与good()相反,刚进行的操作失败时返回true,否则返回false;
bad():如果进行了非法操作返回true,否则返回false;
eof():进行输入操作时,若到达文件尾返回true,否则返回false;
如下面的语句,就可以在保证输入正确的情况下执行循环体。
int ival; while(cin>>ival) { //do something cout<<ival<<endl; }
#include <iostream> #include <fstream> using namespace std; int main() { string name; cin>>name; //打开一个输出流 ofstream SaveFile("test.txt"); //向流中输出内容 SaveFile << "Hello,"<<name; //关闭流 SaveFile.close(); }
#include <iostream> #include <fstream> using namespace std; int main() { int i; //输出内容 /* fstream File("test.txt",ios::in | ios::out); while(!File.eof()) { //空格作为单词的分隔符进行读取 File>>i; cout << i << endl; }*/ //输入内容 fstream File("test.txt",ios::out|ios::app); cout<<"Add number"<<endl; //File.seekg(ios::beg); while(cin>>i) { File<<i; File<<" "; } File.close(); }
in|out 打开文件做读写操作,并定位于文件开头处
in|out|trunc 打开文件做读写操作,删除文件中已有的数据
字符串流
iostream标准库支持内存中的输入\输出,只要将流与存储在程序内存中的string对象捆绑起来即可。
书上的例子:
#include<sstream> using namespace std; int main() { int val1 = 512, val2 = 1024; ostringstream oss_message; oss_message << "val1:" << val1 << "\n" << "val2: " << val2 << "\n"; cout << oss_message.str() << endl; }
例子的重点在于int型值自动转换为等价的可打印的字符串。
2012-11-9
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。