长崎春华 2022-11-21 15:12 采纳率: 50%
浏览 1

C链表打印信息输出格式不符合预期

使用链表打印文本文件,打印格式有问题
struct student
{
    char name[20];
    int age;
    char sex[10];
    char tel[20];
};

struct Node
{
    struct student data;
    struct Node* next;   
}list;

struct Node* createlist()
{
    struct Node* head = (struct Node*)malloc(sizeof(struct Node));
    head->next = NULL;
    return head;
}

void printlist(struct Node* head)
{
    struct Node* pmove = head->next;
    while(pmove)
    {
        printf("%s %d %s %s",pmove->data.name,pmove->data.age,pmove->data.sex,pmove->data.tel);
        pmove = pmove->next;
    }
    printf("\n");
}

void insertNodeByHead(struct Node* head,struct student data)
{
    struct Node* insertNode = creatNode(data);
    insertNode->next = head->next;
    head->next = insertNode;
}

void readInfoToFile(struct Node* headNode,char *fileName)
{
    FILE *fp;
    struct student data;
    fp = fopen(fileName,"r");
    if(fp == NULL)
    {
        fp = fopen(fileName,"w+");
    }
    while(fscanf(fp,"%s %d %s %s",&data.name,&data.age,&data.sex,&data.tel) != EOF) // 格式化读取文件 
    {
        insertNodeByHead(headNode,data);
    }
    
    fclose(fp);
    
}

/*主函数*/
    struct Node* list = createlist();
    readInfoToFile(list,"tset.txt"); 
    printlist(list);
    return 0;
    
文本内容为:

img

输出内容为:

img

希望输出内容能按照文本格式来输出

  • 写回答

1条回答 默认 最新

  • 叶落花枯 2022-11-21 15:28
    关注

    fscanf读取文件的地方,name、sex、tel这三个数组不需要用 & 取地址,数组名本身就是地址。

    评论

    报告相同问题?

    问题事件

    • 创建了问题 11月21日

    悬赏问题

    • ¥15 如何通过求后验分布求得样本中属于两种物种其中一种的概率?
    • ¥15 q从常量变成sin函数,怎么改写python代码?
    • ¥15 图论编程问题,有可以指导的吗
    • ¥15 DEA的CCR模型画图
    • ¥15 请假各位一个关于安卓车机的问题
    • ¥15 光谱仪怎么看这样的透射谱
    • ¥15 pyqt5 如何实现输入框输入关键词,下拉框显示模糊查询返回的结果?
    • ¥20 fluent模拟,可以燃烧和相变同时模拟吗?
    • ¥50 海康摄像头,C#如何识别车牌号码和抓取JPG
    • ¥15 yolov5 pt转engine的问题