C语言 f扫描成一个结构



我试图将一些数据扫描到一个结构体中,编译器可以使用代码,但当我尝试打印它时,它甚至不打印文本。这是代码:

#include <stdio.h>
#include <stdlib.h>
typedef struct xy {
    unsigned x;
    unsigned y;
} myStruct;
int main(void)
{
    FILE *myFile;
    myStruct *xy;
    myFile = fopen("filename.txt", "rb");
    if(fscanf(myFile, "%u %u", &xy->x, &xy->y) != 2)
        fprintf(stderr, "Error!"); exit(1);
    fclose(myFile);
    printf("x: %u, y: %un", xy->x, xy->y);
    return 0;
}

我需要为此分配空间吗?如果必须的话,你能告诉我怎么做吗?

这里没有结构。只是结构体上的指针。您可以使用malloc()为它分配内存或声明结构local:

myStruct xy;

在这个例子中不需要使用malloc。

固定:

#include <stdio.h>
#include <stdlib.h>
typedef struct xy {
  unsigned int x;
  unsigned int y;
} myStruct;
int main(void)
{
  FILE *myFile;
  myStruct xy;
  if ((myFile = fopen("filename.txt", "rb")) == NULL)
    return (1);
  if(fscanf(myFile, "%u %u", &xy.x, &xy.y) != 2)
    {
      fprintf(stderr, "Error!");
      return (1);
    }
  fclose(myFile);
  printf("x: %u, y: %un", xy.x, xy.y);
  return 0;
}

相关内容

  • 没有找到相关文章

最新更新