精华内容
下载资源
问答
  • c语言写入文件乱码
    千次阅读
    2022-02-28 16:01:20

    fwrite() 函数用来向文件中写入块数据,它的原型为:
    size_t fwrite ( void * ptr, size_t size, size_t count, FILE *fp );
    参数说明:
    ptr 为内存区块的指针,它可以是数组、变量、结构体等。fread() 中的 ptr 用来存放读取到的数据, fwrite() 中的 ptr 用来存放要写入的数据。
    size:表示每个数据块的字节数。
    count:表示要读写的数据块的块数。
    fp:表示文件指针。
    返回值:返回成功读写的块数,也即 count。如果返回值小于 count:
    对于 fwrite() 来说,肯定发生了写入错误,可以用 ferror() 函数检测。
    对于 fread() 来说,可能读到了文件末尾,可能发生了错误,可以用 ferror() 或 feof() 检测。

    这儿根据结构体来写入文件,其实写入的是二进制数据流,而记事本编码不支持二进制,所以会导致乱码,在读取的时候用相对应的fread能准确地读出写入的内容,若不想在记事本上显示乱码数据。可以考虑使用fprintf和fscanf。

    更多相关内容
  • 今天在做c语言系统类题时,用fwrite写入文件,打开文件发现乱码,百度尝试了几种办法都没解决。

    今天在做系统类题时,用fwrite写入文件,打开文件发现乱码,百度了一下尝试了几种办法都没解决。
    如图所示在这里插入图片描述

    第一种:认为“fwrite是将内存中的数据不经转换直接写入文件,所以文件中保存的是二进制形式,所以看到乱码”,然后尝试用fprintf写入文件,结果还是乱码。
    第二种:是改变文件编码方式,将编码方式UTF-8改为ASNI编码方式,结构还是乱码。
    最终仔细观察发现,乱码几乎都是在两个数据项之间,第一个数据无论是数字还是文字都不会乱码,所以我觉得编码和读写方式应该都没问题,然后我想起会不会是定义数组时没有赋初始值,导致数组有脏数据,然后我将数组赋值0后就没乱码了。
    下面一行是数组赋初始值后。
    在这里插入图片描述

    展开全文
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼void save1() //将工具的基本信息保存至文件:"工具基本信息.file"{FILE*fp; //定义fp是一个指向FILE类型数据的指针变量...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    void save1() //将工具的基本信息保存至文件:"工具基本信息.file"

    {

    FILE*fp; //定义fp是一个指向FILE类型数据的指针变量

    struct sheng *p; //指向结构体sheng

    int c;

    puts("\n是否保存? 1 、保存 2、不保存\n");

    scanf("%d",&c);

    while(c!=1&&c!=2) //判断输入是否正确

    {

    while(getchar()!='\n');

    printf("\n输入错误,请重新输入:");

    scanf("%d",&c);

    }

    if(c==1)

    {

    if((fp=fopen("工具基本信息.file","wb"))==NULL) //打开输出文件并使fp指向此文件

    {

    puts("\n无法打开此文件\n"); //如果打开时出错就输出"打不开"的信息

    exit(0); //终止程序

    }

    for(p=head1;p!=NULL;p=p->next)

    fwrite(p,sizeof(struct sheng),1,fp); //写入文件wb二进制写入方式从fp指向的文件写入一组数据

    fclose(fp); //关闭文件

    puts("\t\t\t信息已保存成功……\n");

    }

    }

    struct sheng *print1()

    {

    FILE *fp;

    struct sheng *p,*h,*p1;

    if((fp=fopen("工具基本信息.file","rb"))==NULL) //以读的方式打开二进制文件

    {

    puts("\n无法打开此文件\n");

    exit(0);

    }

    head1=(struct sheng*)malloc(sizeof(struct sheng));//创立头节点

    p=head1;//节点链接

    while(!feof(fp))//判断是否结束

    {

    p1=(struct sheng*)malloc(sizeof(struct sheng));//创立新节点

    fread(p1,sizeof(struct sheng),1,fp);//从文件读入数据

    p->next=p1;//节点相连

    p=p1;//移到链表尾

    }

    p->next=NULL;

    fclose(fp);

    puts("\t\t\t信息已成功读入……\n");

    return h->next;

    }

    展开全文
  • //写入数据代码#include#defineSIZE2typedefstructstu1//学生信息表{charname[10];intnum;intage;charaddr[15];...//写入文件函数voidma...//写入数据代码#include#define SIZE 2typedef struct stu1 /...

    //写入数据代码#include#defineSIZE2typedefstructstu1//学生信息表{charname[10];intnum;intage;charaddr[15];}student;studentstu[SIZE];voidsave();//写入文件函数voidma...

    //写入数据代码

    #include

    #define SIZE 2

    typedef struct stu1 //学生信息表

    {

    char name[10];

    int num;

    int age;

    char addr[15];

    }student;

    student stu[SIZE];

    void save();//写入文件函数

    void main()

    {

    int i;

    printf("请输入name,num,age,address!\n");

    for(i = 0; i < SIZE; i++)

    {

    scanf("%s,%d,%d,%s", stu[i].name,&stu[i].num,&stu[i].age, stu[i].addr);

    printf("\n");

    }

    save();

    }

    void save()

    {

    FILE *fp;

    int i;

    if(!(fp = fopen("list", "wb")))

    {

    printf("无法打开此文件!\n");

    return;

    }

    for(i = 0; i < SIZE; i++)

    {

    fwrite(&stu[i], sizeof(student), 1, fp);

    }

    fclose(fp);

    }

    //读取数据代码

    #include

    #include

    #define SIZE 2

    typedef struct stu1//学生信息表

    {

    char name[10];

    int num;

    int age;

    char addr[15];

    }student;

    student stu[SIZE];

    int i;

    void load();//读取文件函数

    void main()

    {

    load();

    for(i = 0; i < SIZE; i++)

    {

    printf("%s %d %d %s\n", stu[i].name, stu[i].num, stu[i].age, stu[i].addr );

    }

    }

    void load()

    {

    FILE *fp;

    if(!(fp = fopen("list", "rb")))

    {

    printf("Cannot open the file!");

    return;

    }

    for(i = 0; i < SIZE; i++)

    {

    fread(&stu[i], sizeof(student), 1, fp);

    }

    fclose(fp);

    }

    结果正确后面却附带着一些乱码,是那里出了问题?

    展开

    展开全文
  • 这个是文本存放的内容 但是使用我写的函数将它全部输出时候却只显示了2个,有一个是乱码 如图: 这里是我写的将文本内容输出的代码: void xianshi(){ FILE *fp; struct all *p; p = (struct all*)malloc(sizeof ...
  • C语言文件读取乱码

    千次阅读 2021-06-16 18:58:47
    乱码原因:txt文件的编码有问题 操作方法:另存为改编码,将UTF-8编码改为ANSI。
  • 如图所示 出现烫的地方本应该是学生的成绩 但是在用记事本打开不能正常出现 这是为什么? 该怎么办呢?
  • C语言中用 fwrite 向文件写入结构体时出现乱码的解决方法,由于fwrite是用于二进制文件的,所以打开直接写入文件是会出现乱码,这时需要一个中间文件来存储临时数据,就是先将数据存储在一个临时文件,然后从这个...
  • 转载:https://blog.csdn.net/sinat_16643223/article/details/105677098 这是正常的,需要注意,这种细节也是自己真正自己去写了才体会得到。
  • C语言[文件写入、读取]

    千次阅读 2022-04-27 16:01:45
    一、文件写入 打开:FILE *a; a=fopen("student.txt","w");...注意:写入文件都是二进制文件,直接打开看到的是乱码 #include <stdio.h> int main() { FILE *a; int *p; int d[]={5,4,6,99};
  • 在TC中~#include#include#include#include#includecharstr[10];staticcharstr2[10]="1234";structstudent{intnum;char*name;longphone...在TC中~#include #include #include #include #include char str[10];...
  • <p>#include<stdio.h> #include<stdlib.h>...在 result.txt文件里 除了姓名 其余的数字全是一些乱码和“烫烫” 以及"屯屯"  求求大神吗 能告诉萌新小白这是为什么吗</p>
  • C语言读取txt文件 文字部分乱码

    千次阅读 2021-05-24 04:26:51
    帮忙看下 读取出来的文字全部乱码 数字正常define _CRT_SECURE_NO_WARNINGSincludeincludevoid readFile(char*** p, int* line){int totallines = 0;char buf[1024] = { 0 };FILE* fp = fopen("C:\\Users\\Desktop\\...
  • 1.打开txt文件,选择文件,选择另存为,将编码改为ANSI(ANSI是本机默认编码,即Windows的cmd界面下的编码) 2.在程序内使用fopen("文件名","w")的方式进行创建txt文件,以此方法创建的txt文件编码默认为ANSI ...
  • C语言读取文件时txt中的汉字出现乱码的解决方案

    千次阅读 多人点赞 2021-06-12 21:05:57
    C语言课程设计要求使用文件,然后在我进行文件操作的时候发生了一点小小的意外,读写文件中的汉字显示的居然是乱码。 经过我的一番查找之后发现居然是txt编码方式的问题。 为使计算机支持更多语言,通常使用 0x80~0...
  • C语言读写txt文件编译时出现乱码

    千次阅读 2021-01-24 21:51:31
    文本文件默认的编码形式是utf-8 马赛克部分是中文 将编码形式改成ascii就好了。文件 -> 另存为->
  • 问题遇到的现象和发生背景 正在学c语言,改了一下网课的代码,发现输入的和输出的全是乱码 问题相关代码,请勿粘贴截图 #include #include #include #pragma warning(disable : 4996) struct Student { char name[20...
  • do{ printf("输入--1:新建 2:插入 3:查询 4:删除 5:数据输入到文件 0:退出\n"); printf("请选择功能:"); scanf("%d",&choice); switch(choice){ case 1: p=create_f_list(p);break; case 2: insert_friends_...
  • C语言读写中文时出现乱码的解决

    千次阅读 多人点赞 2020-12-07 21:14:17
    C语言读取文件时中文乱码处理 之前一直以为读取中文时变成乱码时因为读取文件时字符串长度不足,或者是文件中中文格式不对,上网百度以后发现是TXT格式文件在创建时默认编码为UTF-8,这导致在读取文件时编码格式不...
  • 程序输入之后,记事本只显示name、addr,而int型数据均为乱码,请问如何解决这一问题?? #include #define SIZE 3 struct Student_type { char name[10]; int num; int age; char addr[15]; }stud[SIZE]; ...
  • Linux编译C语言出现乱码

    千次阅读 2021-11-13 19:21:42
    作为一名初学者,当编译C语言文件指令时,文档中的汉字会以乱码的形式出现,这就导致编译的困难。 针对于我的情况,解决办法是:在主文件中打开文本,点击右上角这个三个横杠的按键。 点开工具,点击高亮(如果是...
  • C语言在读取txt类型文件中的汉字字符串出现乱码的解决办法 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj 一、前言 当我们在练习文件这一章节时,因为需要从文件中读取...
  • #include <stdio.h> #include <stdlib.h> int main() { long buffer[]={1000,2000,3000,4000,5000,6000,7000}; long RCV[10]; //接收数组 FILE *fp;...//统计写入的数据块 int RCV_num
  • fwrite写入文件乱码问题

    万次阅读 2018-09-05 15:07:49
    参考下面这篇文章(使用fprintf写入文件) http://c.biancheng.net/cpp/html/2936.html 使用fprintf 和 fscanf 代替 fwrite fscanf() 和 fprintf() 函数与前面使用的 scanf() 和 printf() 功能相似,都是格式化...
  • 最近写代码用fscanf遇到写入中文的时候会有乱码,是assi码的显示方式。找了好多资料都没有解决。 目前网上搜到办法有:用宽字符型。但是没有用。 最简单的办法就是用notepad++在编码模式上选择assi模式,然后输入...
  • C语言文件操作

    2021-05-19 09:21:25
    所谓文件(file)一般指存储在外部介质上数据的集合,比如我们经常使用的mp3、mp4、txt、bmp、jpg、exe、rmvb等等。这些文件各有各的用途,我们通常将它们存放在磁盘或者可移动盘等介质中。那么,为什么这里面又有这么...
  • socket乱码解决:大小匹配

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,688
精华内容 2,275
关键字:

c语言写入文件乱码

友情链接: hlsdk-2.3-p3.zip