困惑如何从字符串转换使用C中的strtod()做翻一番++

如果有人可以解释如何使用的功能,这将是巨大的。 我不明白的参数。

谢谢

--------------解决方案-------------

第一个参数是一个指向字符。 c_str()为您提供了从字符串对象的指针。 第二个参数是可选的。 它在字符串中的数值后,将包含一个指向下一个字符。 见http://www.cplusplus.com/reference/clibrary/cstdlib/strtod/更多的相关信息。

string s;
double d;

d = strtod(s.c_str(), NULL);

第一个参数是你要转换的字符串,第二个参数是你想要的浮在你的原始字符串后,指向的第一个字符(如果你想开始阅读后的字符串为char *的引用数)。 如果你不关心的第二个参数,就可以将其设置为NULL。

例如,如果我们有下列变量:

char* foo = "3.14 is the value of pi"
float pi;
char* after;

pi = strtod(foo, after)的值将是:

foo is "3.14 is the value of pi"
pi is 3.14f
after is " is the value of pi"

请注意,这两个foo和之后都指向同一个数组。

如果你在C ++中工作,那么你为什么不使用std::stringstream

std::stringstream ss("78.987");

double d;
ss >> d;

或者,甚至更好boost::lexical_cast为:

double d;
try
{
d = boost::lexical_cast<double>("889.978");
}
catch(...) { std::cout << "string was not a double" << std::endl; }

我不明白的参数。

检查此链接的strtod。 提供例如所有信息。

分类:C# 时间:2012-12-08 人气:0
本文关键词: C#的strtod
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.366 (s). 10 q(s)