c – 使用stringstream浮动的字符串

前端之家收集整理的这篇文章主要介绍了c – 使用stringstream浮动的字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在网上找到这个代码作为模板,用于执行字符串到float / int / double转换.它只在这里,所以我有一些东西可以参考这个问题….

我希望让用户输入一个数字作为字符串,将其转换为浮点数,测试它是否成功,如果输入为’Q’则退出或打印“无效输入”如果它不是’Q’uit字符和返回更多输入.

转换失败测试的语法是什么?它会是ss.fail()吗?

// using stringstream constructors.
#include <iostream>
#include <sstream>
using namespace std;

int main () {

  int val;
  stringstream ss (stringstream::in | stringstream::out);

  ss << "120 42 377 6 5 2000";

  /* Would I insert an 

     if(ss.fail())
       { 
        // Deal with conversion error }
       }

    in here?! */


  for (int n=0; n<6; n++)
  {
    ss >> val;
    cout << val*2 << endl;
  }

  return 0;
}

解决方法

您的代码不是很有帮助.但如果我理解你就是这样做的
string str;
if (!getline(cin,str))
{
  // error: didn't get any input
}
istringstream ss(str);
float f;
if (!(ss >> f))
{
  // error: didn't convert to a float
}

没有必要使用失败.

猜你在找的C&C++相关文章