【问题标题】:Using boost::lexical_cast<double>(string)使用 boost::lexical_cast<double>(string)
【发布时间】:2013-03-28 22:17:43
【问题描述】:

我是初学者,需要解释为什么这不起作用:

string myArray[620223];
//myArray is then populated with a while loop using ifstream and getline
string myString = myArray[9];
double myValue;

try {
    myValue = boost::lexical_cast<double>(myString);
} 
catch(boost::bad_lexical_cast const&) {
    myValue = 0;
}

myArray[9] 非零,但结果 double 始终为零。任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 什么是myArraystd::strings 的数组?只输出myString会得到什么?
  • 是的。 myString 的输出是正确的值。例如,cout 给出:9.968750。
  • 发生了一些有趣的事情。你的代码是正确的。有一个重要的细节没有在问题中暴露。
  • @user1830888 只需使用myArray声明 更新问题。我们想知道它的类型,因为它没有被提及。
  • 给定的代码很好。尝试 (1) 生成 sscce 或 (2) 使用调试器。

标签: c++ boost lexical-cast


【解决方案1】:

由于代码看起来不错,这里有一个有根据的猜测。 myArray[9]第十 数组元素。 myArray[0] 是第一个。你实际上想要第九个元素,myArray[8]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多