C++ primer 习题8-3 15 16

来源:互联网 发布:查询域名有啥用 编辑:程序博客网 时间:2024/05/29 09:09

加深和熟练对输入输出流的运用。。。

#include<iostream>using namespace std;istream&get(istream &in){int val;cout<<"输入:";while(in>>val,!in.eof()){if(in.bad())throw("eroor。。");if(in.fail()){cerr<<"Try again!!!"<<endl;in.clear();in.setstate(istream::eofbit);//这句为什么不可以呢??//            in.ignore(1,' ');continue;}cout<<val<<endl;}in.clear();return in;}int main(){get(cin);int vall;cin>>vall;cout<<"vall="<<vall<<endl;return 0;}

疑问:返回的in应该正常,为什么main函数中的cin不能输入呢???


8-15

#include<iostream>#include<fstream>#include<sstream>using namespace std;istream&get(istringstream &in,string &w){//istringstream val;     in.str(w);//这句很关键     string val;cout<<"输入:";while(in>>val,!in.eof()){if(in.bad())throw("eroor。。");if(in.fail()){cerr<<"Try again!!!"<<endl;in.clear();//in.setstate(istream::eofbit);//这句为什么不可以呢??            in.ignore(1,' ');continue;}cout<<val<<endl;}in.clear();return in;}int main(){istringstream sin;string w="wo men dou shi hao hai zi";get(sin,w);int vall;cin>>vall;cout<<"vall="<<vall<<endl;return 0;}

8-16

#include<iostream>#include<vector>#include<sstream>#include<fstream>#include<cstdlib>using namespace std;int main(){ifstream fin;fin.open("source.cpp");if(!fin){cerr<<"Open error..."<<endl;exit(1);}string line;vector<string> vec;while(!fin.eof()){getline(fin,line);vec.push_back(line);}vector<string>::iterator iter=vec.begin();string word;while(iter!=vec.end()){istringstream sin(*iter);while(sin>>word)cout<<word<<endl;//       while(!sin.eof()){sin>>word;cout<<word<<endl;}++iter;}return 0;}


0 0
原创粉丝点击