【发布时间】:2020-01-14 07:51:42
【问题描述】:
我有一个包含“1514”之类数据的流,我想读取两个数字 15 和 14。
我尝试使用std::setw,但它似乎不适用于整数。
#include <sstream>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
stringstream stringStream("1415");
string s1,s2;
stringStream>>setw(2)>>s1>>setw(2)>>s2;
cout<<"s1: "<<s1<<", s2: "<<s2<<endl;
stringstream intStream("1415");
int i1,i2;
intStream>>setw(2)>>i1>>setw(2)>>i2;
cout<<"i1: "<<i1<<", i2: "<<i2<<endl;
}
我希望在完成字符串时解析整数。
所以我想要 i1=14 和 i2=15。
【问题讨论】:
-
整体阅读,稍后除以 100(第一部分)和模 100(第二部分)进行拆分
-
生成的字符串可能太大而无法放入长字符串。
-
读取为字符串,中间拆分,如果需要,将每个部分转换为
long/integer。 -
确实 setw on input 仅适用于字符串。您可以通过读取字符串并使用
strtod或stoi将它们转换为整数来利用它。