在while循环中使用fscanf创建结构,第二次迭代后替换变量

时间:2018-09-01 10:48:37

标签: c struct scanf

    FILE * stream= fopen(room_file, "r");
    if (stream==NULL){
        return NULL;
    }
    while(!feof(stream)){
        fscanf(stream, "%s %d %d",building,&roomNumber,&size);
        if(fgets(multimedia, WORD_LEN, stream)==NULL){
            break;
        }
        if(strcmp(multimedia, "N")==0){
          mm=false;
        }
        else{
            mm=true;
        }
        Room newRoom=roomCreate(building, roomNumber, size, mm);
      Node newNode=createNode(newRoom);
        addToRoomsList(sysList, newNode);
    }

在这里,我尝试创建具有building,roomNumber,size,mm字段的房间,并且在newRoom-> building,...,newRoom-> mm的while循环值的第二次迭代中,由scanf更改

Room roomCreate (char *building_name, int number, int size, bool mm)
{
    assert(building_name!=NULL);

    if (size<=0 || size>=1000 || number<=0 || number>=10000){
        return NULL;
    }

    Room newRoom= malloc(sizeof(*newRoom));
    newRoom->building_name=building_name;
    newRoom->multi_media=mm;
    newRoom->size=size;
    newRoom->number=number;
    newRoom->orders=NULL;
    return newRoom;
}

-创建空间的功能,但我想问题不在这里,只是其他详细信息

0 个答案:

没有答案