C数据结构 文件输出错误乱码是什么情况?

在使用C语言处理data.txt文件时遇到了输出乱码的情况。原始数据包含学生信息,但最终输出出现错误,如'锘?'等无法识别的字符。同时,数据显示男生和女生的合格率及全班平均分,但内容中存在明显的格式错误。问题可能与编码、读写操作或内存管理有关,使用的是Codeblocks IDE。
摘要由CSDN通过智能技术生成

C语言 文件输出错误乱码是什么情况?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
typedef struct student{
    char id[10];
    char name[30];
    bool gender; // 1 男 0 女
    int score;
    struct student *next;
}student, *stu;

int main() {
    char *file_path = "./data.txt";
    char data[100];
    FILE *fp=fopen(file_path, "r");
    if(!fp) {
        printf("can't open file\n");
        exit(0);
    }
    stu L = (stu)malloc(sizeof(student)); //L是链表头节点
    L->next = NULL; //申请新节点后next域一定要置空
    while(!feof(fp)) {
        char tmp[10];
        stu s = (stu)malloc(sizeof(student)); //申请新节点
        fscanf(fp, "%s %s %s %d", s->id, s->name, tmp, &s->score); //从表中读出一个人的信息
        if(strcmp(tmp, "m")==0) //如果是男,gender=1,否则gender=0
            s->gender = 1;
        else s->gender = 0;

        stu p &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值