fstream,sstream的学习记录
fstream:
#include<iostream> #include<fstream> using namespace std; int main(){ ofstream os("C:\\Users\\Administrator\\Desktop\\ifile.txt",ios::app); //查看位置处是否有ifile.txt,若没有,程序自己建一个 //其中ios::app表示在原文件末尾追加 string str; while(getline(cin,str)){//getline(cin,str)是为了string读入空格键 os<<str<<endl; } cin.clear();//使cin可用 os.close(); ifstream in("C:\\Users\\Administrator\\Desktop\\ifile.txt"); while(getline(in,str)){//从in中读入一整行(包括空格)到str中 cout<<str<<endl; } return 0; }
sstream:
#include<iostream> #include<fstream> #include<sstream> using namespace std; int main(){ string s="hello world"; string word; istringstream is(s);//用s来初始化is; while(is>>word){//将is中的单词一个一个读入word中,经过while内容处理 word[0]=toupper(word[0]);//使首字母大写; cout<<word<<" "; } ostringstream os; string str; while(cin>>str){//不停读入str,只碰到终止符Ctrl+z os<<str<<endl;//将str内容读入os中,换行符也可读入 } cout<<os.str();//os.str()返回os所保存的string拷贝值 return 0; }
综合 运用:文本处理(处理每一个单词)
#include<iostream> #include<fstream> #include<sstream> using namespace std; int main(){ ofstream os("C:\\Users\\Administrator\\Desktop\\ifile.txt",ios::app); string str; while(getline(cin,str)){ os<<str<<endl; } cin.clear(); ifstream in("C:\\Users\\Administrator\\Desktop\\ifile.txt"); string line,word; while(getline(in,line)){//line读入in中的每一行 istringstream is(line); while(is>>word){//word读入line中每一个单词 word[0]=toupper(word[0]);//使首字母大写; cout<<word<<" "; } } return 0; }