如何解决我的嵌套结构问题?

时间:2014-05-25 18:34:42

标签: c

我正在编写一个程序,必须从分隔文件中读取然后打印输出。分隔符是一个英镑符号'#'。现在我不断收到错误“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);
}

1 个答案:

答案 0 :(得分:1)

此处,您的PropertyListingListing结构中的字段。您正尝试分配listing[n].buildingTypeListing结构中不存在。

它们确实存在于您的PropertyListing结构中,其中一个名称Listing包含在propertyListing结构中。您只需访问propertyListing作为标准结构字段,然后通过该成员访问PropertyListing的成员。例如,请参阅以下代码:

listing[n].propertyListing.buildingType; // For the building type string
listing[n].propertyListing.numBedrooms;  // For the number of bedrooms

等等。