Error: request for member 'Name' in something not a structure or union
Error: request for member 'Name' in something not a structure or union
我正在尝试编写一个程序,将文本文件(data2.txt)中的数据读取到动态数组中。然后将该数据打印到屏幕上。当我 运行 我的程序出现如下错误时:
Error: request for member 'Name' in something not a structure or union.
我不明白为什么会出现此错误,因为我在我的程序中包含了一个包含结构的头文件。数组 P 的大小是文件中的第一个整数。任何 help\guidance 将不胜感激。
这里是文本文件的内容data2.txt:
5
Martin Smith 22 2.2
Austin Clinton 18 3.1
Johnson 19 2.9
Maggie Jones 23 2.3
Tyler W Brown 16 3.4
这里是头文件的内容:
typedef struct RECORD
{
char Name[15];
int Age;
float Gpa;
};
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Mo.h"
int main()
{
int n;
int number = 0;
int i=0;
FILE * fpointer;
fpointer = fopen("data2.txt", "r");
fscanf(fpointer,"%d",&number);
n = number;
printf("Size value is: %d \n", n);
int *P = malloc(n*sizeof(int));
[错误显示在下一行]
fscanf(fpointer,"%s %d %f", P[i].Name , &P[i].Age, &P[i].Gpa);
while(! feof(fpointer))
{
printf("%s %d %.1f\n",P[i].Name , P[i].Age, P[i].Gpa);
fscanf(fpointer, "%s %d %f",P[i].Name , &P[i].Age, &P[i].Gpa);
i++;
}
free(P);
fclose(fpointer);
printf("\n\n");
system("PAUSE");
return 0;
}
int *P = malloc(n*sizeof(int));
这里P
是一个int
类型的指针,你需要的是
struct RECORD *p = malloc(n * sizeof(struct RECORD));
p
应该是 struct RECORD
类型的指针
我正在尝试编写一个程序,将文本文件(data2.txt)中的数据读取到动态数组中。然后将该数据打印到屏幕上。当我 运行 我的程序出现如下错误时:
Error: request for member 'Name' in something not a structure or union.
我不明白为什么会出现此错误,因为我在我的程序中包含了一个包含结构的头文件。数组 P 的大小是文件中的第一个整数。任何 help\guidance 将不胜感激。
这里是文本文件的内容data2.txt:
5
Martin Smith 22 2.2
Austin Clinton 18 3.1
Johnson 19 2.9
Maggie Jones 23 2.3
Tyler W Brown 16 3.4
这里是头文件的内容:
typedef struct RECORD
{
char Name[15];
int Age;
float Gpa;
};
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Mo.h"
int main()
{
int n;
int number = 0;
int i=0;
FILE * fpointer;
fpointer = fopen("data2.txt", "r");
fscanf(fpointer,"%d",&number);
n = number;
printf("Size value is: %d \n", n);
int *P = malloc(n*sizeof(int));
[错误显示在下一行]
fscanf(fpointer,"%s %d %f", P[i].Name , &P[i].Age, &P[i].Gpa);
while(! feof(fpointer))
{
printf("%s %d %.1f\n",P[i].Name , P[i].Age, P[i].Gpa);
fscanf(fpointer, "%s %d %f",P[i].Name , &P[i].Age, &P[i].Gpa);
i++;
}
free(P);
fclose(fpointer);
printf("\n\n");
system("PAUSE");
return 0;
}
int *P = malloc(n*sizeof(int));
这里P
是一个int
类型的指针,你需要的是
struct RECORD *p = malloc(n * sizeof(struct RECORD));
p
应该是 struct RECORD