jtwc 发表于 2022-1-29 09:53

各位老师,如何将下面代码中的char *t 转化成double类型呢?

各位老师,如何将下面代码中的char *t 转化成double类型呢?谢谢了
#include <stdio.h>
#include <string.h>
int main()
{
    char Result = {0};
    char *t;
    int j = 1;

    //读取文件
    FILE *fp = fopen("y:\\data.txt", "rb");
    fread(Result, 1024, 1, fp);
    fclose(fp);
   
    //将换行符替换为分割文本的制表符
    for (int i = 0; i < 1024; i++)
    {
      if (Result=='\r' && Result == '\n')
      {
            Result = '\t';
            Result = '\t';
      }
    }

    t = strtok(Result, "\t");
    while (t)
    {
      t = strtok(NULL, "\t");
      j++;
      if (j==95 && t!=NULL)
      {
            printf("第%d组:%s", j, t);
      }
    }

    getchar();
    return 0;
}

无闻无问 发表于 2022-1-29 11:18

strtod和atof等应该行吧

无闻无问 发表于 2022-1-29 11:19

还有sprintf啊

jtwc 发表于 2022-1-29 12:40

无闻无问 发表于 2022-1-29 11:18
strtod和atof等应该行吧

老师,atof不行呢?
double t1 = atof(t);
printf("%.0f\n", t1);

无闻无问 发表于 2022-1-29 14:23

sscanf呢?

jtwc 发表于 2022-1-29 14:57

无闻无问 发表于 2022-1-29 14:23
sscanf呢?

老师,如何写呢?谢谢了

欢都洛兰 发表于 2022-1-29 15:08

不会C语言,类型转换的话,char运算时会转换为int,int可以隐式转换为double,也就是t*1.0结果为double类型,不知道c语言是否可以。

jtwc 发表于 2022-1-29 15:10

欢都洛兰 发表于 2022-1-29 15:08
不会C语言,类型转换的话,char运算时会转换为int,int可以隐式转换为double,也就是t*1.0结果为double类型 ...

老师,不行,谢谢了

ryosga 发表于 2022-1-29 18:16

#include <iostream>

int main()
{
    const char* s = "1.23";
    double d1 = atof(s);
    double d2 = std::stod(s);
    std::cout << d1 << ' ' << d2 << std::endl;

    return 0;
}

jtwc 发表于 2022-1-29 19:36

ryosga 发表于 2022-1-29 18:16
#include

int main()


老师,不能用于上面的案例中,谢谢了
页: [1]
查看完整版本: 各位老师,如何将下面代码中的char *t 转化成double类型呢?