我正在编写一个程序,必须从分隔文件中读取然后打印输出。分隔符是一个英镑符号'#'。现在我不断收到错误“field not found:buildingType”。我知道这是因为我的嵌套结构,但对于我的程序,我被告知它应该如何编写。我的parseListing()方法的返回类型需要为void,这就是为什么我认为我也可能会遇到错误。我需要找到解决这个问题而不改变我的返回类型。同样在我的分隔文件中,有一些值被列为“N / A”,我需要在我从文件中打印字符时不显示这些值。我的分隔文件看起来像这样,除了每行之间没有空格(我在文本框中放置空格以便在此站点上进行格式化)。
到目前为止,这是我的代码。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char buildingType[10];
int numBedrooms;
int numBathrooms;
}Propertylisting;
typedef struct {
Propertylisting propertylisting;
char address[100];
char unitNum [10];
char city [50];
void printPropertyListing(Listing l) {
printf("%s %s %s\n%s %d %d %d\n\n", l.address, l.unitNum, l.city, l.buildingType, l.numBedrooms, l.numBathrooms, l.listPrice);
}
答案 0 :(得分:1)
此处,您的PropertyListing
是Listing
结构中的字段。您正尝试分配listing[n].buildingType
,Listing
结构中不存在。
它们确实存在于您的PropertyListing
结构中,其中一个名称Listing
包含在propertyListing
结构中。您只需访问propertyListing
作为标准结构字段,然后通过该成员访问PropertyListing
的成员。例如,请参阅以下代码:
listing[n].propertyListing.buildingType; // For the building type string
listing[n].propertyListing.numBedrooms; // For the number of bedrooms
等等。