fwrite乱码问题

2023-05-16

我们这里数据格式为
201911606 liu 1.1 1.2 99
201911607 wang 1.2 1.3 98
……
fwrite写入文件是二进制代码形式,所以用文本打开为乱码,这时候我们可以用fprintf代替
fwrite效果:
在这里插入图片描述
乱码
fprintf效果:

在这里插入图片描述

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct grade
{
	char id[20];
	char name[10];
	double n1, n2;
	int rank;
}stu1[200];
typedef struct grade *pStu;

int comp1(const void *a, const void *b);

int main()
{
	int i, j, count = 0;
	FILE *fp1, *fp2;
	
	fp1 = fopen("grade.txt", "r");

	while((fscanf(fp1,"%s%s%lf%lf%d\n", stu1[count].id, stu1[count].name, &stu1[count].n1, &stu1[count].n2, &stu1[count].rank)) != -1)
		count++;
	
	rewind(fp1);
	fclose(fp1);
	qsort(stu1, count, sizeof(struct grade), comp1);
	fp2 = fopen("output.txt", "w");
	for (i = 0; i < count; i++)
		//fwrite(&stu1, sizeof(struct grade), 1, fp2);
		fprintf(fp1, "%s %s %lf %lf %d\n", stu1[i].id, stu1[i].name, stu1[i].n1, stu1[i].n2, stu1[i].rank);

	rewind(fp2);
	fclose(fp2);
		
		
	return 0;
}

int comp1(const void *a, const void *b)
{
	pStu p1, p2;
	
	p1 = (pStu)a;
	p2 = (pStu)b;
	
	return strcmp(p1, p2);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fwrite乱码问题 的相关文章

  • MATLAB中提高fwrite和fprintf函数的I/O性能

    提高 fwrite 和 fprintf 函数的 I O 性能 http www matlabsky com thread 34861 1 1 html 今天我们将讨论下著名的fwrite xff08 fprintf xff09 函数 xff
  • 设置 fread fwrite 的 utf-8 编码

    您好 我使用此代码在文件中读取和写入文本 d fopen chat txt r content fread d filesize chat txt bn explode content foreach bn as bn echo bn br
  • 有没有办法从 Python 编写格式化文本?

    如果您使用 python 写入文件 有什么方法可以使文本的某些部分变为粗体 斜体或下划线 i tried test location tester rtf out file open test w out file write is thi
  • 为什么“fopen”返回 NULL 指针?

    我正在用 C 编程语言开发一个简单的文件拆分 合并程序 问题是 由于某种原因fopen返回 NULL 正因为如此 我的程序崩溃了fwrite陈述 我该如何解决 这是 C 文件 int SplitFile char filename char
  • 在php上写入文件

    我想保留访问者的 IP 并将其保存在文件中 我尝试了 fwrite 函数 但我认为它是在文件上的先前 ip 上重写的 Example ip txt 为空 当我运行 write php 脚本时 在 ip txt 上我有 x x x x ip
  • 在 C 中使用具有相同标志的 fopen 打开文件

    我无法理解这段代码的输出 int main FILE f f1 f fopen mytext w if f1 fopen mytext w 0 printf unable n fprintf f hello n fprintf f1 hi
  • 将 9 位值作为字节写入 C 中的文件

    我有一个整数值从 0 511 最多 9 位 的数组 我正在尝试将其写入文件fwrite 例如 对于数组 257 258 259 Which is 100000001 100000010 100000011 I am trying to wr
  • 通过 fwrite 添加换行符到输出文件

    我正在尝试格式化我在下面创建的文件 以便每个名称 值对都位于自己的行上 我确信这很容易 但我的 ini 文件根本没有格式化换行符 我缺少什么 function wpseTest query SELECT option name option
  • 使用指针写入和读取(fwrite - fread)结构

    我正在开发一个邮箱项目 我有以下两种结构 结构mmbox mail struct mmbox mail char sender recipient char obj date char flags size t size and mail
  • fwrite 对于大量小写入的效率

    我有一个程序可以使用以下命令保存许多 gt 1GB的大文件fwrite它工作得很好 但不幸的是由于每次调用的数据的性质fwrite只写1 4字节 结果 写入可能需要一个多小时 其中大部分时间似乎是由于系统调用开销 或至少在 fwrite 的
  • 如何导出每个键的数据表?

    让我们考虑一下数据表 gt dt data table v1 1 10 v2 c rep a 5 rep b 5 v1 v2 1 1 a 2 2 a 3 3 a 4 4 a 5 5 a 6 6 b 7 7 b 8 8 b 9 9 b 10
  • 在 PHP 中写入文本文件时换行符不起作用

    我有以下测试脚本 但是 当运行并使用记事本打开时 数据以单行形式返回 没有中断 如下所示 Floppy Jalopy 疯狂盒子 Pointy Pinto 疯狂盒子 我找不到 疯狂盒子 的合适字符 但它确实是一个疯狂的盒子 是什么赋予了 最好
  • 内存映射文件和单个块的原子写入

    如果我使用普通 IO API 读取和写入单个文件 则保证每个块的写入都是原子的 也就是说 如果我的写入仅修改单个块 则操作系统保证要么写入整个块 要么什么也不写入 如何在内存映射文件上达到相同的效果 内存映射文件只是字节数组 因此如果我修改
  • 如何在现有数组中追加数据而不覆盖整个数组[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 这是我的代
  • 如何在python中写入不带括号的文件

    当我写下我的结果时 output knew i 0 knew i 1 knew i 2 eigenval k group i value str output o write value n I get 0 05 0 05 0 166667
  • 在C中将XImage写入.bmp文件

    我正在使用以下代码将 XImage 写入文件 bitmap0 bmp 但是当我在 fedora 中使用 imageViewer 打开新创建的文件时 它会给出 文件过早结束 错误并且不显示任何内容 谁能指出以下代码中的问题吗 typedef
  • PHP 中的 substr_replace 编码

    我想写入一个文本文件 当我使用子字符串替换 https www php net manual en function substr replace php在 PHP 中 编码发生变化 它无法正确打印希腊字符 如果我不这样做 一切都很好 我怎
  • PHP fwrite() 文件导致内部服务器错误

    我想将大文件上传到我的服务器 我在上传之前拼接这些文件 1MB 块 如果上传一个块 该块将被附加到文件中 在我的本地服务器上 一切运行良好 但如果我在我的 Web 服务器 由 Strato 托管 上测试此脚本 每当服务器上的附加文件变得 6
  • 如何尽可能快地输出固定缓冲区?

    示例代码 include
  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre

随机推荐

  • 基于FreeRTOS的stm32程序初始化底层搭建(hal库)

    采用嵌入式实时操作系统 RTOS 可以更合理 更有效地利用CPU的资源 xff0c 简化应用软件的设计 xff0c 缩短系统开发时间 xff0c 更好地保证系统的实时性和可靠性 FreeRTOS是一个迷你的实时操作系统内核 作为一个轻量级的
  • ceres小结 -- vins为例

    从 typora 复制的 排版有问题 见谅 在estimator cpp文件里 这个函数 void Estimator optimization 1 声明problem ceres Problem problem 2 引入核函数loss f
  • JavaScript操作表格及CSS样式

    概述 在前端开发中 xff0c 表格主要用于存储结构化的数据 xff0c CSS主要用于修饰DOM元素 xff0c 如何通过DOM来操作表格及CSS呢 xff1f 本文主要通过一些简单的小例子 xff0c 简述DOM对表格和CSS的常见操作
  • 转:Git Submodule管理项目子模块

    使用场景 当项目越来越庞大之后 xff0c 不可避免的要拆分成多个子模块 xff0c 我们希望各个子模块有独立的版本管理 xff0c 并且由专门的人去维护 xff0c 这时候我们就要用到git的submodule功能 常用命令 span c
  • Linux/c++服务器开发方向的重点

    作者 xff1a NULL 链接 xff1a https www zhihu com question 37247264 answer 2352680534 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c
  • Prometheus之Dockerfile编写、镜像构建、容器启动

    Python微信订餐小程序课程视频 https edu csdn net course detail 36074 Python实战量化交易理财系统 https edu csdn net course detail 35475 目录 从官方镜
  • Java的接口调用

    最近在观看一个Android开发中 xff0c 有一个问题百思不得其解 xff0c 就是从Fragment传数据回Activity和Activity传数据到Fragment中 xff0c bundle其实刚开始还是理解的 xff0c 但是当
  • X86实模式与保护模式简介

    0 引言 从80386开始 xff0c CPU有三种工作方式 xff1a 实模式 xff0c 保护模式和虚拟8086模式 v86模式 只有在刚刚启动的时候是real mode xff0c 等到操作系统运行起来以后就切换到protected
  • (1)VisDrone无人机目标检测数据集介绍

    数据集介绍 官网 xff1a http aiskyeye com VisDrone数据集 xff0c 包含了10个类 xff08 即行人 人 汽车 面包车 公共汽车 卡车 汽车 自行车 遮阳三轮车和三轮车 xff09 无人机计算机视觉相关检
  • 简单的shell编程的语法

    shell 1 span class token punctuation span 脚本以 span class token comment bin bash 开头 span span class token comment 脚本的常用执行
  • 使用c++模板的优点和缺点

    作为C 43 43 语言的新组成部分 xff0c 模板引入了基于通用编程的概念 通用编程是一种无须考虑特定对象的描述和发展算法的方法 xff0c 因此它与具体数据结构无关 但在决定使用C 43 43 模板之前 xff0c 让我们分析一下使用
  • kalibr 进行相机单目、双目标定全流程

    一 部署kalibr环境 docker 步骤 xff1a 参考链接 xff1a Installation ethz asl kalibr Wiki GitHub Docker操作知识 xff1a Docker攻略 xff1a 从安装到入门到
  • kalibr源码阅读参考

    Kalibr简介 xff1a Kalibr是一个用于标定多相机系统和IMU xff08 惯性测量单元 xff09 的开源工具包 xff0c 旨在提供一套完整的 易于使用的标定工具 它是ETH Zurich自主飞行系统实验室的一个项目 xff
  • QT5.11.1下的DirectShowPlayerService::doRender: Unresolved error code 0x80040266 ()报错)

    64 TOC QT5 11 1下的DirectShowPlayerService doRender Unresolved error code 0x80040266 报错 1 实验环境 实验环境 xff1a xff08 1 xff09 QT
  • GPS定位中的卡尔曼滤波算法

    卡尔曼滤波 xff1a 卡尔曼滤波由预测和校正两部分组成 预测部份又称时间更新过程 xff0c 是在上一个历元 k 1 状态估计值的基础上 xff0c 利用系统的状态方程来预测当前历元 k 的状态值 校正部分又叫测量更新过程 xff0c 它
  • 古月居ROS21讲入门(10)发布者Publisher的编程实现(源代码详解)

    发布者Publisher的编程实现 源代码详解 一 话题模型二 创建learning topic功能包三 实现一个发布者1 初始化ROS节点2 注册节点信息3 创建消息数据 四 配置CMakeLists txt中的编译规则五 编译并运行发布
  • STM32自学笔记串口DMA发送/接收 FIFO 突发模式

    参考博文 串口发送TXPA9DMA2 Stream7通道4正常模式串口发送RXPA10DMA2 Stream5通道4循环模式 串口波特率115200 PA9 PA10复用输出 注意点 串口接受数据dma方式不能开启串口接受中断 Dma双缓冲
  • 【STM32】标准库-自定义BootLoader

    Bootloader bootloader其实就是一段启动程序 xff0c 它在芯片启动的时候最先被执行 xff0c 可以用来做一些硬件的初始化或者用作固件热更新 xff0c 当初始化完成之后跳转到对应的应用程序中去 bootloader程
  • 【数据结构】使用结构体指针时需要使用malloc

    如果定义一个结构体类型的普通变量 xff0c 可以不malloc动态申请内存 xff0c CPU会为这个结构体变量分配内存 如果定义的是一个结构体的指针 xff0c CPU会为这个指针开辟内存 xff0c 但是此时这个大小是4 xff08
  • fwrite乱码问题

    我们这里数据格式为 201911606 liu 1 1 1 2 99 201911607 wang 1 2 1 3 98 fwrite写入文件是二进制代码形式 xff0c 所以用文本打开为乱码 xff0c 这时候我们可以用fprintf代替