【问题标题】:pass pointer value to a variable将指针值传递给变量
【发布时间】:2020-11-20 21:39:11
【问题描述】:

我正在尝试从 txt 文件中读取值。 以下代码运行良好,但它只将值打印到标准输出,我不知道如何将这些值存储在变量中。 提前谢谢你。

char *value = NULL;
double Training[401], Test[50];
int i=0;
size_t line_buf_size = 0; 
while(i<4)
        {
            getline(&value, &line_buf_size, in_file);
            fscanf(in_file,"%s%*[^\n]",value);
            printf("value %s \n",value);
            Training[i]=(double)value; // error : pointer value used where a floating point value was expected
            //printf(" training %d i %d \n",Training[i], i);
            i++;
        }

【问题讨论】:

  • 你是什么意思,“我不知道如何将这些值存储在变量中”。它在Training,对吗?
  • @VladfromMoscow 你的意思是这样的: char line = getline(&value, &line_buf_size, in_file); ?
  • Training[i]double 而 value 是 char* 不能像你想要的那样投射
  • @edtheprogrammerguy getline() 接受指针而不是变量,我已经尝试过了。

标签: c pointers getline


【解决方案1】:

我认为您面临的问题是将“值”变量(类型:char *)存储到“Training[i]”(类型:double)中。

您需要将 char * 转换为 double:https://stackoverflow.com/a/10075336/7440867

【讨论】:

  • 那么,有没有办法将指针的值存储到变量中?
  • 你可以试试:sscanf(value, "%lf", &amp;Training[i]);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多