精华内容
下载资源
问答
  • 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。

    更多相关内容
  • 在最近我遇到了一个问题当我使用fwrite写数据进文件时,直接打开文件出现了乱码,以下是我的文档显示 我的输入是 清华大学 2020 32 这个时候我们发现每两个数据项之间都多了一些随机字符,虽然不影响读取数据,但是...

    在最近我遇到了一个问题当我使用fwrite写数据进文件时,直接打开文件出现了乱码,以下是我的文档显示在这里插入图片描述
    我的输入是 清华大学 2020 32 这个时候我们发现每两个数据项之间都多了一些随机字符,虽然不影响读取数据,但是需要文档截图的我还是必须要处理这些随机字符。
    我的代码是:
    在这里插入图片描述

    我在网上搜了很多都没有找到答案,最终我根据随机字符是出现在数据项之间猜测是字符串的结束符之后的随机字符被写入,所以我定义了一个clear()函数将字符串之后的空间全部置为了结束符,问题成功解决,下面我给出clear()函数:

    在这里插入图片描述
    修改后的文件每一个都是我的真实输入

    在这里插入图片描述

    就这样问题解决,希望能帮到各位!!!!

    展开全文
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼/*主函数*/main(){charch1,ch2,ch4;do{ system("cls");printf("\t\t************************************\n");printf("\t\t************************************\n");...

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

    /*主函数*/

    main()

    {

    char

    ch1,ch2,ch4;

    do

    { system("cls");

    printf("\t\t************************************\n");

    printf("\t\t************************************\n");

    printf("\t\t***** 欢迎进入酒店商务平台系统

    *****\n");

    printf("\t\t************************************\n");

    printf("\t\t************************************\n");

    printf(" 请选择:\n");

    printf(" 1:查询房间 \n");

    printf(" 2:预订房间 \n");

    printf(" 3:管理系统 \n");

    printf(" 4:退订房间 \n");

    printf(" 0:退出 \n");

    printf("请输入0━4:\n");

    ch1=getch();

    switch(ch1)

    {

    case '1':charoom();break;

    case '2':bookroom();;break;

    case '3':{

    do

    {

    system("cls");

    printf("\t\t*******欢迎进入管理系统*******\n");

    printf(" 1:增加房间 \n");

    printf(" 2:减少房间 \n");

    printf(" 3:修改房间 \n");

    printf(" 4:房间统计 \n");

    printf(" 5:会员管理系统

    \n");

    printf(" 0:返回 \n");

    printf("请输入0━5:\n");

    ch2=getch();

    switch(ch2)

    {

    case '1':addroom();

    break;

    case '2':delroom();break;

    case '3':changeroom();break;

    case '4':roomcount();getch();break;

    case '5':{

    do

    {

    system("cls");

    printf("\t\t····欢迎进入会员管理系统····\n");

    printf(" 1: 申请新卡 \n");

    printf(" 2: 删除卡号 \n");

    printf(" 3: 订房统计 \n");

    printf(" 4: 卡号统计 \n");

    printf(" 0: 返回 \n");

    printf("请输入0━4:\n");

    ch4=getch();

    switch(ch4)

    {

    case '1':addcar();break;

    case '2':delcar();break;

    case '3':sellcount();break;

    case '4':carcount();break;

    case '0':break;

    default:printf("无此操作!\n");getch();break;

    }

    }while(ch4!='0');}break;

    case '0':break;

    default:printf("无此操作!\n");getch();break;

    }

    }

    while(ch2!='0');}break;

    case '4':cancelroom();break;

    case '0':break;

    default:printf("无此操作!\n");getch();break;

    }

    }while(ch1!='0');

    }

    展开全文
  • c语言fwrite写入int问题,怎么解决?#includevoid aaa();struct student{char name[5]; //姓名int age; //年龄int num; //学号char addr[5]; //地址}stu[4];void main(){int i;printf("请输入4个学生姓名、年龄、...

    c语言fwrite写入int问题,怎么解决?

    #include

    void aaa();

    struct student

    {

    char name[5]; //姓名

    int age; //年龄

    int num; //学号

    char addr[5]; //地址

    }stu[4];

    void main()

    {

    int i;

    printf("请输入4个学生姓名、年龄、学号、地址,按回车!\n");

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

    {

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

    } aaa();

    }

    void aaa()

    {

    FILE *fp;

    int i;

    if((fp=fopen("123.txt","w"))==NULL)

    {

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

    return;

    }

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

    {

    if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)

    {

    printf("写入错误!\n");

    }

    }

    fclose(fp);

    }

    运行时输入:

    1 1 1 1

    1 1 1 1

    1 1 1 1

    1 1 1 1

    我把存放到相对路径123.txt但是文件最后显示却是:(int类型是乱码)

    1     1 1     1 1     1 1     1

    09-01-13  Macy263 发布

    67b0a70febe552c922c54bb8560d6ef6.png

    f4a132536ed76b592a2581f46f11f33c.png

    楼主这句有问题for(i=0;str[i]!='/0';i++); ,应该为for(i=0;str[i]!='\0';i++); 其他没问题啊。

    #include

    #include

    int main()

    {

    FILE *fp;

    int i;

    char path[160],str[500];

    int size =0;

    printf("输入文件地址或者创建一个新文件:\n");

    gets(path);

    fp=fopen(path,"a+");

    if(fp == NULL)

    {

    fp=fopen(path,"w+");

    if(fp == NULL)

    {

    printf("文件打开失败。\n");

    exit(0);

    }

    }

    printf("请输入文件正文,按回车结束:\n");

    gets(str);

    for(i=0;str[i]!='\0';i++);

    size = fwrite(str,i,1,fp);

    if(size!=1) /*为什么不能追加,只能创建?追加写入就错误*/

    {

    printf("文件写入错误。\n");

    exit(0);

    }

    fclose(fp);

    return 0;

    }

    10-04-11

    | 添加评论

    | 打赏

    ◆◆

    请登录后再发表评论!

    ◆◆

    展开全文
  • fwrite写文件是乱码

    千次阅读 2021-07-08 23:24:38
    fwrite写的二进制文件,所以我们打开所写的文件是乱码,但数据是正确的,我们通过fread函数按照原来的数据格式读取即可。 可以参考该文。 #include <sys/types.h> #include <sys/stat.h> #include &...
  • 【C 语言】文件操作 ( fwrite 函数 )

    千次阅读 2021-05-28 23:25:05
    一、fwrite 函数、 二、fwrite 示例、 三、fwrite 示例 ( 写出数据超出实际有效值 )、 四、fwrite 示例 ( 输出 int 整型到二进制文件中 )、
  • fread()函数和fwrite()函数要使用二进制文件,虽然结构中有些内容是文本,但是成员high和weigh不是文本,如果用文本编辑器查看,会有文本部分显示正常,但是数值部分的内容不可读,甚至会导致文本编辑器出现乱码 ...
  • #includevoid aaa();... } 运行时输入: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 我把存放到相对路径123.txt但是文件最后显示却是:(int类型是乱码) 1 1 1 1 1 1 1 1 希望大家帮助解决一下,本人不甚感激!!!!!
  • 今天在做c语言系统类题时,用fwrite写入文件,打开文件发现乱码,百度尝试了几种办法都没解决。
  • C语言#fwrite

    2019-03-17 09:08:31
    fwrite 作用 向文件中写入数据块 参数 数据来源的内存地址,可以用指针或者&amp;amp;amp; 要写入的每个数据项的字节数,一般可以用sizeof得到 要写入的项数(count) 目标文件的文件指针 返回值 返回实际写入...
  • fwrite(&num[i],sizeof(people),2,fp); fclose(fp); } void ReadFile(struct people num[],int n) { FILE *fp; fp=fopen("FP.txt","rb"); for(i=0;i;i++) { fread(&num[i],sizeof(people),2,fp); ...
  • 这是一篇记录使用fgets和fwrite分割文件时,而踩到的坑------乱码 我们总是容易信心膨胀,导致了爆炸。于是就有了这篇踩坑的文章。 最近学习了c语言的基本用法和函数。感觉还行,所以就迫不及待地写了一个文件大小...
  • 我今晚有空,好奇把谭浩强c语言这本书上的例题代码,打了一遍。写入文件。结果竟然乱码了。呵呵,这。。。 #include #include struct stu { char name[10]; int num; int age; char add[15]; }A[2]; void save...
  • 文件操作 fwrite#include//?ftellrewind#include//exit//fwrite(&stu[0],sizeof(structstudent),2,fp)写入//2个结构体structstudent{intage;charname[40];}stu[3]={{23,"fvsef"},{45,"如果好的"},{56,"sc的v"}},...
  • 第一篇文章已经介绍了fopen函数。...还有读写是存在编码问题的,为了更简洁的介绍这两个函数,我们不使用中文字符串(会有乱码),(编码问题单独写一篇讨论)。 先看下fwrite函数的声明。 size_t fwrit
  • C语言fwrite()与fprintf()区别(十一)

    千次阅读 2019-07-24 22:57:35
    如果显示不出来,那就写的是二进制内容(打开就是所谓的乱码) 2.fprintf()写的是数字转换成ASCII码之后的字符 二、例子 1.fwrite() //test_01.c #include <stdio.h> int main(){ FILE * pFile; int bu.....
  • eg: 出现乱码的原因: 编码和解码不是同一个标准。 如果要求在外存上以ASCII代码形式存储,则需要在存储前进行转换为ASCII形式。 字符一律ASCII形式存储,数值型数据既可以ASCII形式存储也可以二进制形式。 多媒体...
  • C语言把文件看作一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件又称为文本(text)文件,它的每个字节放一个ASCII代码,代表一个...
  • fwrite输入乱码问题

    2021-06-26 12:46:17
    fwrite函数向文件输入后记事本内为乱码应该如何解决?
  • 今天在给别人写程序的时候,遇到一个问题,将结构体数组的数据存到文件中,出现了乱码。 下面我写的程序: struct student { int num; //学号 char name[15]; //姓名 char sex[8]; //性别 char className...
  • p=p->next) fwrite(p,sizeof(struct sheng),1,fp); //写入文件wb二进制写入方式从fp指向的文件写入一组数据 fclose(fp); //关闭文件 puts("\t\t\t信息已保存成功……\n"); } } struct sheng *print1() { FILE *fp; ...
  • 仅仅是它保存的信息是些文本(比如可显示的ASCII码,双字节汉字等等),这样文本编辑器就可以用“文本方式”查看和编辑内容,而不像二进制那样的天书一样的玩意这段代码就是把字符串用fwrite写入文本文件char* ...
  • 转载:https://blog.csdn.net/sinat_16643223/article/details/105677098 这是正常的,需要注意,这种细节也是自己真正自己去写了才体会得到。
  • C语言中用 fwrite 向文件写入结构体时出现乱码的解决方法,由于fwrite是用于二进制文件的,所以打开直接写入的文件是会出现乱码,这时需要一个中间文件来存储临时数据,就是先将数据存储在一个临时文件,然后从这个...
  • 问题遇到的现象和发生背景 正在学c语言,改了一下网课的代码,发现输入的和输出的全是乱码 问题相关代码,请勿粘贴截图 #include #include #include #pragma warning(disable : 4996) struct Student { char name[20...
  • 为什么用fwrite向记事本文件写入后,打开成为乱码 瓠?瓠?瓠?瓠?瓠?瓠?瓠?瓠?瓠?瓠?瓠?瓠?瓠?瓠 求高手解释一下
  • 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]; }...
  • 满意答案ohyeah11272014.11.28采纳率:49%等级:7已帮助:114人fwrite是向流中写入数据,而fprintf是向流中写入格式数据。两者的共同点为向流中写入数据,至于区别可以看看两者的申明:size_tfwrite(constvoid*...

空空如也

空空如也

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

c语言fwrite乱码