0%

1.stream

1
2
3
ostringstream oss("Ito En Green Tea")//存在各种参数可以具体控制流

cout<<oss.str()<<endl

上述输出Ito En Green Tea

image-20240227215319652

接着输出16.9 Ounce n Tea

ostringstream创造一个字符串流,oss<<可以重置该字符串流

image-20240228121438174

cin是标准输入流,还有三个输出流:cout,cerr,clog

cin读到下一个空白字符为止,因此单个输入中不应有空格,为了解决这个,我们可以使用getline来获取整行

image-20240228131619781

当<<与getline混合使用时,常常会发生错误,因为里面夹杂着“/n”,因此我们引入了cin.ignore()

if(cin>>result) cout<<result;常常用这样的形式作为输入的检查是否正确

但往往后面会有cin.clear, 其作用不是清楚整个流,而是清楚流在输入错误后的false状态,使后续cin能继续工作。

事实上,如果输入类型有严格的要求:

1
2
3
string result,char val;

if(cin>>result || !(cin>>val)) cout<<result