C++ primer 习题8-3 15 16
2014-03-04 16:25
721 查看
加深和熟练对输入输出流的运用。。。
疑问:返回的in应该正常,为什么main函数中的cin不能输入呢???
8-15
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;
}
#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;
}
相关文章推荐
- 《C++ Primer》第五版课后习题解答_第六章(3)(16-26)
- 《C++ Primer》第五版课后习题解答_第六章(2)(08-15)
- C++ Primer, Exercise 08-03,08_14,08_15,08_16
- 算法竞赛入门经典(第二版)-刘汝佳-第四章 函数与递归 例题+习题(15/16)
- c++ primer 习题 15
- c++ primer 习题 15
- 快学Scala学习笔记及习题解答(15-16注解与XML处理)
- c++ primer 习题 15
- 《C++ Primer》第五版课后习题解答_第五章(3)(15-19)
- c++ primer 习题 15
- 抽象容器(参考c++ primer 3rd和习题解)
- c++ primer习题9.26答案错误
- 循环-16. 猴子吃桃问题(15)
- 《C++ Primer》第五版课后习题解答_第六章(4)(27-35)
- c++ primer 第五版习题答案9.28
- C++ Primer第四版习题--3.14
- C++ Primer第四版习题--4.28
- C++ Primer 第9章 习题9.32
- jeapedu 15 两重循环习题3
- C++ Primer 第10章 习题10.24