将char数组转换为double

时间:2015-06-17 07:04:43

标签: c printf double fgets atof

我试过这个:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {

FILE *txt1;
char tam[13];
char tam1[13];
char tam2[13];

txt1 = fopen("C:/Users/Hugo/Documents/C/in2.txt","r");
if(txt1 == NULL)
{
    printf("No se puede leer el archivo");
    return 0;
}
fgets(tam1,sizeof(tam1), txt1);
double c = atof(tam1);
printf("%f",c);

当我调试时:tam1是&#34; 3.1415926535&#34;但它打印出来:

  

0.000000

1 个答案:

答案 0 :(得分:0)

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
        FILE *txt1;
        char tam[13];
        char tam1[13];
        char tam2[13];
        txt1 = fopen("99.c","r");
        if(txt1 == NULL)
        {
                printf("No se puede leer el archivo");
                return 0;
        }
        fgets(tam1,sizeof(tam1), txt1);
        double c = atof(tam1);
        printf("%f",c);// change from c
}

o/p:
rabi@rabi-VirtualBox:~/rabi/c$ ./a.out 
3.141593rabi@rabi-VirtualBox:~/rabi/c$ vi 4.c