c语言-C语言【文件操作】的问题

问题描述

C语言【文件操作】的问题

各位学长,小生刚接触C语言不久,特别是文件操作,希望解答以下问题,不胜感谢:
1.fwrite函数的第三个参数的意思,百科的解释有点看不懂。。。
2.下面有一段小程序,为什么输入成绩时到第二个就没有了?
而且读取文件输出时,有的数据会变成一串数字。。。
#include "stdafx.h"
#include
#include

struct stu
{
int numb;
char name[10];
int score;
}studenta[3],studentb[3];

int main(int argc, char* argv[])
{
int m;
int a;
FILE *fp=fopen("file.txt","ab");
if(fp==NULL)
{
printf("Erroe!Can not open the file!");
exit(0);
}
else
printf("请选择您需要的服务:n1.录入学生成绩,P键结束录入n2.查询学生成绩n");
scanf("%d",&a);
switch(a)
{
case 1:printf("请按“学号 姓名 成绩”输入:n");
for(m=0;m<3;m++)
{
scanf("%d%c%d",&studenta[m].numb,&studenta[m].name,&studenta[m].score);
if(getchar()=='p')break;
}
fwrite(&studenta,sizeof(struct stu),1,fp);
break;
case 2:fread(&studentb,sizeof(struct stu),1,fp);
for(m=0;m<3;m++)
{
printf("%d %c %d",studentb[m].numb,studentb[m].name,studentb[m].score);
};break;
default:printf("Error!EXE will be close!");exit(0);
}
fclose(fp);
return 0;
}

解决方案

写入的元素的个数,这个元素的类型不确定。

解决方案二:

1表示写入一个结构体。

解决方案三:

http://www.cnblogs.com/witxjp/archive/2011/03/21/1990519.html

解决方案四:

要进行写入size字节的数据项的个数

解决方案五:

for(m=0;m<3;m++)
{
scanf("%d%c%d",&studenta[m].numb,&studenta[m].name,&studenta[m].score);
if(getchar()=='p')break;
else fflush(stdin);//你加上这个清除输入缓冲区就好了。你需要多了解这个方面常见的问题,我以前学习时老师就强调过。
}

时间: 2024-09-23 17:52:30

c语言-C语言【文件操作】的问题的相关文章

C语言基础之文件操作基本常识

  我们都知道,在C语言中,文件操作都是由库函数来完成的.下面会给大家介绍到输入输出等函数,供参考 . 由于程序中经常有大量对文件的输入输出操作,它经常构成了程序的主要部分,因而C语言提供了很多输入输出的函数,它们分别用于两种类型文件输入输出系统:即由ANSI标准定义的缓冲文件(也称标准文件(流)输入输出(I/O)系统);另一类是ANSI标准中没有定义的非缓冲文件(也称非标准文件(流)输入输出(I/O)系统). 我们已经熟悉了通过键盘和显示器进行输入输出的一些函数,如scanf(),printf

c语言编程-关于文件操作函数rename与remove

问题描述 关于文件操作函数rename与remove 我把文件指针都关闭了,可是调用rename(重命名文件)和remove(删除文件)函数都不起作用?把中间对文件的操作注释掉也一样,不知道哪里出了问题...两个函数的返回值都是-1,我也去查了原因,网络上讲解的好像都不是呀 解决方案 void onMenuDele(char *id) { FILE *p=fopen("f:employee.txt","r"); //打开文件 if(p==NULL) { printf

提前认识软件开发(12) 配置文件读取及文件操作

在通信领域的软件开发项目中,C语言是主流的编程语言,而文件操作在其中又占有很重要的地位.此外,为了体现产品的灵活性,可添加配置文件对某些重要的参数进行按需配置.这就要求程序能够准确读取到各个配置项的值. 本文以一个实际的小软件为例,介绍了C语言中配置文件的读取方法和重要的文件操作函数的使用方法,为相关软件开发项目提供了有益的参考. 1.前言 在一般的软件项目中,常常需要用C语言对文件进行操作.在诸如对账之类的程序中,尤其如此.而C语言中有关文件操作的函数多达数十种,熟悉常用函数(如fopen.f

C++编程思想3-利用C++进行文件操作封装C函数

我们知道在C语言中许多文件操作的函数 很零散,在使用的时候不得不四处查找 ,我们是否能向C++中 的   CFile类等一样封装我们自己的文件操作呢?当然可以,我们这里我封装的是 C语言的文件操作函数  .实际上我们可以直接封装win32的API 函数 利用文件句柄进行文件操作,MFC的CFile类封装的就是 WIN32的API ,这里我只做测试用C来实现封装类File ,下面的File类可以实现对文件的读写 以及清空功能,简单的功能反应出面向对象的程序设计的好处,将对文件袋饿操作封装成了一个整

C语言文件操作

        文章出自:海子         修改:㈠輩子.戀蒶--标哥                                           C语言文件操作解析(二)        C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数.fopen函数的原型为        FILE* fopen(const char *path,const char *mode)        其中path为文件路径,mode为打开方式        1)对于文件路径,只需

让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码

第1部分 重新认识C语言 C语言中常用的文件操作函数总结及使用方法演示代码           在C语言中,有关文件操作的函数多达数十种,但并非每个函数都经常会被用到.        本文对实际软件开发项目中常用的C文件操作函数的用法进行了总结,并用实际的C代码来演示了它们的用法.   1. C语言中常用的文件操作函数总结 (1) fopen 作用:打开文件. 表头文件:#include <stdio.h> 定义函数:FILE *fopen(const char *path, const ch

文件类型,c语言文件读写,文件缓冲,文件打开方式,文件操作函数

文件类型分为:流文件和设备文件,设备文件比如:VGA接口,串口,usb口,网口,串口,这些接口都被操作系统抽象成为了文件. 当我们写程序的时候默认已经帮我们打开了三个文件 分别是: stdin:标准输入,stdout:标准输出,stderr:标准出错,scanf实际上接收的是标准输入的数据,这时候的标准输入就是我们的键盘.              有四种方式清空缓冲区:      A.加'\n';            B.程序正常退出;      C.通过fflush(stdout)也可以清

文件传输-下面c语言中要将操作结果存入文件(当遇到#时为止)。程序运行时为什么老是中断出错?

问题描述 下面c语言中要将操作结果存入文件(当遇到#时为止).程序运行时为什么老是中断出错? #include(stdio.h)#include(stdlib.h)void main(){FILE *fp;char ch;if((fp=fopen(""C:UsersAdministratorDesktopEnglish.doc""w""))=NULL){ printf(""cannot open filen"&quo

c语言-C语言,文件操作问题,fwrite函数的使用

问题描述 C语言,文件操作问题,fwrite函数的使用 #include <stdio.h> #include <stdlib.h> #pragma warning(disable:4996)// #define NULL 0 #define SIZE 2 struct student { char name[10]; int num; int age; }stud[SIZE]; void save() { FILE *fp; int i; if((fp=fopen("s