开发者

Converting a string into a double

I am trying to convert a string (const char* argv[]) to a double precision floating point number:

int main(const int argc, const char *argv[]) {
    int i;
开发者_开发知识库    double numbers[argc - 1];
    for(i = 1; i < argc; i += 1) {
        /* -- Convert each argv into a double and put it in `number` */
    }
    /* ... */
    return 0;
}

Can anyone help me? Thanks


Use sscanf (Ref)

sscanf(argv[i], "%lf", numbers+i);

or strtod (Ref)

numbers[i] = strtod(argv[i], NULL);

BTW,

for(i = 1; i < argc, i += 1) {
//-----------------^ should be a semicolon (;)

-->


Or use atof

http://www.cplusplus.com/reference/clibrary/cstdlib/atof/


You can use strtod which is defined in stdlib.h

Theoretically, it should be more efficient that the scanf-family of functions although I don't think it'll be measurable.


You haven't said what format the const char*s might be in. Presuming they're text strings like "1.23", then sscanf(argv[i], "%lf", &numbers[i-1]) ought to do the job.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜