博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言tempfile错误,C语言文件问题
阅读量:4987 次
发布时间:2019-06-12

本文共 1193 字,大约阅读时间需要 3 分钟。

问题描述】有 n 个学生,从键盘输入学生数据(包括学号、姓名、成绩),学号输入为负数时代表输入结束,将学生数据按成绩由高到低进行排序处理,并将已排序的学生数据存入文件 stu-sort.txt 中。

【输入形式】从键盘输入学生数据。

【输出形式】输出排序好的数据到屏幕和指定文件。

【样例输入】

1000 tss 69

101 hgf 72

2 ius 60

-1

【样例输出】

屏幕和文件的内容为:

101 hgf 72

1000 tss 69

2 ius 60

【样例说明】学生数据定义为结构体,学号和成绩定义为整型即可

我的代码

include

include

struct student {

int num;

char name[10];

int grade;

}stu[10];

void pai(struct student stu[], struct student temp,int n)

{

int i = 0, j = 0;

for (i = 0; i < n - 1; i++) {

for (j = 0; j < n - 1 - i; j++) {

if (stu[j].grade < stu[j + 1].grade) {

temp = stu[j];

stu[j] = stu[j + 1];

stu[j + 1] = temp;

}

}

}

}

void save(int n)

{

FILE *fp;

int i;

if ((fp = fopen("stu-sort.txt", "wb")) == NULL)

{

printf("ERROR\n");

return;

}

for (i = 0; i < n; i++) {

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

printf("ERROR\n");

}

fclose(fp);

}

int main()

{

int i;

int n=0;

for (i = 0;; i++)

{

scanf("%d", &stu[i].num);

if (stu[i].num < 0)

break;

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

n++;

}

struct student temp = { 0,"0",0 };

pai(stu, temp,n);

save(n);

for (i = 0; i < n; i++) {

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

}

system("pause");

return 0;

}

为什么我输出是对的 在文件里显示的是乱码呢??请大神指出错误 谢谢!!!

转载地址:http://zrnrp.baihongyu.com/

你可能感兴趣的文章
sql.date
查看>>
CodeForces 559C Gerald and Gia (格路+容斥+DP)
查看>>
百度地图-中国地图
查看>>
线性判别函数-Fisher 线性判别
查看>>
面试小题
查看>>
My latest news
查看>>
VisualStudio 2015 开启IIS Express可以调试X64项目
查看>>
关于block 用法
查看>>
layui学习
查看>>
zepto源码--整体框架--学习笔记
查看>>
ZeroMQ研究与应用分析
查看>>
纯windows下制作变色龙引导安装U盘教程
查看>>
输出一个数组里最大子数组的和(文件)
查看>>
复杂sql书写方法
查看>>
路由器安置(Routing)
查看>>
4.24—010—周三
查看>>
误移动根目录导致系统异常的解决办法
查看>>
n层满k叉树总共有多少个节点
查看>>
对于JSONObject,我只是临时抱佛脚
查看>>
springboot与dubbo整合入门(三种方式)
查看>>