标签:pre 函数 getline alt font 存储 src http color
C++的输入输出分为三种:
(1)基于控制台的I/O
(2)基于文件的I/O
(3)基于字符串的I/O
istringstream类
描述:从流中提取数据,支持 >> 操作
这里字符串可以包括多个单词,单词之间使用空格分开
1 #include <iostream> 2 #include <sstream> 3 using namespace std; 4 int main() 5 { 6 istringstream istr("1 56.7"); 7 8 cout << istr.str() << endl;//直接输出字符串的数据 "1 56.7" 9 10 string str = istr.str();//函数str()返回一个字符串 11 cout << str << endl; 12 13 int n; 14 double d; 15 16 //以空格为界,把istringstream中数据取出,应进行类型转换 17 istr >> n;//第一个数为整型数据,输出1 18 istr >> d;//第二个数位浮点数,输出56.7 19 cout << d << endl; 20 cout << n << endl; 21 d = 0; 22 n = 0; 23 24 //假设换下存储类型 25 istr >> d;//istringstream第一个数要自动变成浮点型,输出仍为1 26 istr >> n;//istringstream第二个数要自动变成整型,有数字的阶段,输出为56 27 28 //测试输出 29 cout << d << endl; 30 cout << n << endl; 31 return 1; 32 }
输出结果:
举例2:把一行字符串放入流中,单词以空格隔开。之后把一个个单词从流中依次读取到字符串
1 #include <iostream> 2 #include <sstream> 3 using namespace std; 4 int main() 5 { 6 istringstream istr; 7 string line,str; 8 while (getline(cin,line))//从终端接收一行字符串,并放入字符串line中 9 { 10 istr.str(line);//把line中的字符串存入字符串流中 11 while(istr >> str)//每次读取一个单词(以空格为界),存入str中 12 { 13 cout<<str<<endl; 14 } 15 } 16 return 1; 17 }
输出结果:
ostringstream类
描述:把其他类型的数据写入流(往流中写入数据),支持 << 操作
1 #include <sstream> 2 #include <string> 3 #include <iostream> 4 using namespace std; 5 6 int main() 7 { 8 ostringstream ostr1; // 构造方式1 9 ostringstream ostr2("abc"); // 构造方式2 10 11 /*---------------------------------------------------------------------------- 12 *** 方法str()将缓冲区的内容复制到一个string对象中,并返回 13 ----------------------------------------------------------------------------*/ 14 ostr1 << "ostr1" << 2012 << endl; // 格式化,此处endl也将格式化进ostr1中 15 cout << ostr1.str(); 16 17 /*---------------------------------------------------------------------------- 18 *** 建议:在用put()方法时,先查看当前put pointer的值,防止误写 19 ----------------------------------------------------------------------------*/ 20 long curPos = ostr2.tellp(); //返回当前插入的索引位置(即put pointer的值),从0开始 21 cout << "curPos = " << curPos << endl; 22 23 ostr2.seekp(2); // 手动设置put pointer的值 24 ostr2.put(‘g‘); // 在put pointer的位置上写入‘g‘,并将put pointer指向下一个字符位置 25 cout << ostr2.str() << endl; 26 27 /*---------------------------------------------------------------------------- 28 *** 重复使用同一个ostringstream对象时,建议: 29 *** 1:调用clear()清除当前错误控制状态,其原型为 void clear (iostate state=goodbit); 30 *** 2:调用str("")将缓冲区清零,清除脏数据 31 ----------------------------------------------------------------------------*/ 32 ostr2.clear(); 33 ostr2.str(""); 34 35 cout << ostr2.str() << endl; 36 ostr2.str("_def"); 37 cout << ostr2.str() << endl; 38 ostr2 << "gggghh"; // 覆盖原有的数据,并自动增加缓冲区 39 cout << ostr2.str() << endl; 40 }
输出结果:
标签:pre 函数 getline alt font 存储 src http color
原文地址:https://www.cnblogs.com/sunbines/p/9655190.html