鱼C论坛

 找回密码
 立即注册
查看: 2898|回复: 3

拜托

[复制链接]
发表于 2020-6-17 14:32:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有没有大佬知道C语言写入文件时乱码怎么解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-17 14:52:37 | 显示全部楼层
        比如呢,你用什么语句创建文件,用什么语句向文件写入了什么内容,然后就变乱码了?
        最好能把相关源代码片段贴出来看看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-17 15:56:06 | 显示全部楼层
jackz007 发表于 2020-6-17 14:52
比如呢,你用什么语句创建文件,用什么语句向文件写入了什么内容,然后就变乱码了?
        最好 ...

#include <stdlib.h>  
#include <stdio.h>
#include <string.h>  
#define LIST_INIT_SIZE 4   //线性表存储空间的初始分配量
#define  MAXSIZE  100      
//学生的定义
typedef struct  
{  
  char  num[20];
  char name[20];
  char sex[3];
  int english[3];
  int math[3];
  int database[3];
  char sum[4];
  char ZY[20];
  char BJ[2];
}Student;  
//顺序表的定义
typedef struct  
{   
Student *elem;
int length;  
}SqList;

int InitList(SqList &A)//构造一个空的顺序表A
{
    A.elem=new Student [MAXSIZE];   //为顺序表分配空间
    if(!A.elem) exit(-1);      //存储分配失败
    A.length=0;                                          //空表长度为0
    return 0;
}
//刷新
void update(SqList &L)
{  
        int j=0;
                FILE*fp;
        fp=fopen("d://学生信息.txt","r");
        if(fp==NULL)
                printf("输出错误");
        while(fscanf(fp,"%s   %s  %s  %s  %s  %d  %d   %d   \n",L.elem[j].name,L.elem[j].sex ,L.elem[j].num ,L.elem[j].ZY,L.elem[j].BJ,L.elem[j].english,L.elem[j].math,L.elem[j].database)==8)
        {
                j++;
        }
        L.length=j;
        printf("******************刷新成功************************************\n");
        fclose(fp);
}


//保存信息
void fileWrite(SqList &L)
{
       
        FILE*fp;
        int j;
        fp=fopen("d://学生信息.txt","w");
        if(fp==NULL)
                printf("文件打开错误\n");
        for(j=0;j<L.length;j++)
        {
                         fprintf(fp,"%s   %s  %s  %s  %s  %d  %d   %d   \n",L.elem[j].name,L.elem[j].sex ,L.elem[j].num ,L.elem[j].ZY,L.elem[j].BJ,L.elem[j].english,L.elem[j].math,L.elem[j].database );
        }
        fclose(fp);
        printf("***********************保存成功******************************\n");
}


//显示所有员工信息
void display(SqList & L)
{
       
        FILE*fp;
        int j=0,i;
        fp=fopen("d://学生信息.txt","r");
        if(fp==NULL)
                printf("文件打开错误\n");
        while(fscanf(fp,"%s   %s  %s  %s  %s  %d  %d   %d   \n",L.elem[j].name,L.elem[j].sex ,L.elem[j].num ,L.elem[j].ZY,L.elem[j].BJ,L.elem[j].english,L.elem[j].math,L.elem[j].database)==8)
        {
                j++;
        }
        L.length=j;
        for(i=0;i<L.length;i++)
        {
                         printf("%s   %s  %s  %s  %s  %d  %d   %d   \n",L.elem[i].name,L.elem[i].sex ,L.elem[i].num ,L.elem[i].ZY,L.elem[i].BJ,L.elem[i].english,L.elem[i].math,L.elem[i].database );
        }
        fclose(fp);
        printf("   nnbnvn\n");
}


//添加学生信息
void insert(SqList &L)
{
        int j,n;
        L.elem=new Student [MAXSIZE];
        printf("您要添加几条学生信息?");
        scanf("%d",&n);
        for(j = L.length;j < L.length + n;j++)
        {
                printf("请输入第%d学生的信息\n", j + 1);
                printf("请输入该学生的姓名\n");
                scanf("%s", L.elem[j].name);
                printf("请输入该学生的性别:");
                scanf("%s",L.elem[j].sex);
                printf("请输入该学生的学号:");
                scanf("%s",L.elem[j].num);
                printf("请输入该学生的专业:");
                scanf("%s",L.elem[j].ZY);
                printf("请输入该学生的班级:");
                scanf("%s",L.elem[j].BJ);
                printf("请输入该学生的英语成绩:");
                scanf("%d",L.elem[j].english);
                printf("请输入该学生的高数成绩:");
                scanf("%d",L.elem[j].math);
                printf("请输入该学生的数据结构成绩:");
                scanf("%d",L.elem[j].database);
                printf("\n");
        }
        L.length = L.length + n;
}



void menu(SqList &L)
{
        int num;
        int k = 1;
        while(k)
        {
        printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * *|*\n");
    printf(" *|                 企业信息信息管理系统                  |*\n");
    printf(" *|                                                       |*\n");
    printf(" *|       * * * * * * *系统功能菜单* * * * * * *          |*\n");
    printf(" *|    --------------------------------------------       |*\n");
    printf(" *|                                                       |*\n");
    printf(" *|       0.系统帮助及说明  |   1.添加员工信息            |*\n");
    printf(" *|                                                       |*\n");
    printf(" *|       2.查看员工信息    |   3.修改员工信息            |*\n");
    printf(" *|                                                       |*\n");
    printf(" *|       4.删除员工信息    |   5.统计员工信息            |*\n");
    printf(" *|                                                       |*\n");
    printf(" *|       6.所有员工信息    |   7.保存员工信息            |*\n");
    printf(" *|                                                       |*\n");
    printf(" *|                    8.退出系统                         |*\n");
    printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
    printf("------------------------------------------------------------\n");
        printf("请选择菜单编号:");
    scanf("%d",&num);
    switch(num) {
        case 0:
            
            break;
        case 1:
            insert(L);
            break;
        case 2:
            display(L);
            break;
        case 3:
           
            break;
        case 4:
           
                        break;
                case 5:
                       
                        break;
                case 6:
                       
                        break;
  
       case 7:
            fileWrite(L);
            break;
               
        case 8:
            k=0;
            break;
               
        default:
            printf("请在0-9之间选择\n");
        }


}
}



int main()
{
       
        SqList L;
    InitList(L);
        menu(L);
        return 0;}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-17 15:56:38 | 显示全部楼层
jackz007 发表于 2020-6-17 14:52
比如呢,你用什么语句创建文件,用什么语句向文件写入了什么内容,然后就变乱码了?
        最好 ...

这只是部分,还没弄完
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 01:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表