C++ 将特定格式的字符串拆分为浮点数和字符串
我有一个项目,其中的输入是一种特定的格式,需要从中提取数据 格式类似于C++ 将特定格式的字符串拆分为浮点数和字符串,c++,string,stringstream,C++,String,Stringstream,我有一个项目,其中的输入是一种特定的格式,需要从中提取数据 格式类似于H79.03=J99.30,我需要获取浮动 如何仅使用std::stringstream和std::string实现此目的的最佳方法?是的,您只能使用stringstream和string。首先,用空格替换无效数字。然后记下数字 string originalStr = "H79.03 = J99.30"; string expression = originalStr; for(int i = 0; i < expre
H79.03=J99.30
,我需要获取浮动
如何仅使用
std::stringstream
和std::string
实现此目的的最佳方法?是的,您只能使用stringstream和string。首先,用空格替换无效数字。然后记下数字
string originalStr = "H79.03 = J99.30";
string expression = originalStr;
for(int i = 0; i < expression.length(); i++) {
if (!isdigit(expression[i]) && (expression[i] != '.'))
expression[i] = ' ';
}
stringstream str(expression);
float firstValue, secondValue;
str >> firstValue;
str >> secondValue;
cout<<firstValue<<endl; // it prints 79.03
cout<<secondValue<<endl; // it prints 99.30
string originalStr=“H79.03=J99.30”;
字符串表达式=originalStr;
for(int i=0;i>第一值;
str>>第二值;
cout是的,您只能使用stringstream和string。首先,用空格替换无效数字。然后记下数字
string originalStr = "H79.03 = J99.30";
string expression = originalStr;
for(int i = 0; i < expression.length(); i++) {
if (!isdigit(expression[i]) && (expression[i] != '.'))
expression[i] = ' ';
}
stringstream str(expression);
float firstValue, secondValue;
str >> firstValue;
str >> secondValue;
cout<<firstValue<<endl; // it prints 79.03
cout<<secondValue<<endl; // it prints 99.30
string originalStr=“H79.03=J99.30”;
字符串表达式=originalStr;
for(int i=0;i>第一值;
str>>第二值;
库特
到目前为止,您尝试了什么?发布你的代码。到目前为止你尝试了什么?发布您的代码。您的循环正在替换浮点数的小数点。不要将它们转换为空格。和firstValue
和secondValue
需要声明为float
或double
而不是int
谢谢@RemyLebeau的建议。您仍在丢弃小数点isdigit()
为”返回false。
。您需要改为使用此选项:如果(!isdigit(表达式[i])&&(表达式[i]!=”)
您的循环正在替换浮点的小数点。不要将它们转换为空格。和firstValue
和secondValue
需要声明为float
或double
而不是int
谢谢@RemyLebeau的建议。您仍在丢弃小数点isdigit()
为”返回false。
。您需要改为使用它:if(!isdigit(表达式[i])&(表达式[i]!=”)