使用二进制存储
write(fd, &student, sizeof(student));
read(fd, &student, sizeof(student));
如果要读取里面第3个student的内容:
lseek(fd, 2 sizeof(student), SEEK_SET); //即从开始搜索2个student那么长。
这样的前提是student中没有指针,因为每次运行指针的内容是不确定的。
可以考虑先建一个空的excel
写一条数据就完成对excel的编辑
每次循环重新读取这个excel 重复编辑这个excel
这样效率可能不行,不过你要程序中断也要写入一些数据
1、read和write是UNIX或者一些类UNIX系统,比如LINUX系统中使用的,称为LINUX系统函数。这种函数只能在特定的 *** 作系统下使用,可移植性差。fread和fwrite是C库函数。这种函数基本在任何 *** 作系统都能使用,可移植性高。
2、基础知识介绍只介绍LINUX系统函数,常用的有creat,open,close,read,write,lseek,access,一般用于文件编程
3、如何使用谈到如何使用就必须说到另一个知识,文件描述符(file
description),是一个非负数。
函数原型:int
read(int
fd,
const
void
buf,
size_t
length)
功能:
从文件描述符fd所指向的文件中读取length个字节到buf所指向的缓存区中,返回值为实际读取的字节数
int
write(int
fd,
const
void
buf,
size_t
length)
功能:
把length个字节从buf所指向的缓存区中写到件描述符fd所指向的文件中,返回值为实际写入的字节数
例子:
#define
LENGTH
1024
#define
BUFFES_SIZE
1024
int
n1,
n2;
int
fd1,
fd2;
int
buffer[BUFFES_SIZE];fd1
=
open(
"HEllo1txt",
O_RDWR
|
O_CREAT,
O_IRUSE
|
O_IWUSR);
fd2
=
open(
"HEllo2txt",
O_RDWR
|
O_CREAT,
O_IRUSE
|
O_IWUSR);
n1
=
read(
fd1,
buffer,
LENGTH);
n2
=
write(
fd2,
buffer,
n1);
都是
scanf函数是一个标准库函数,它的函数原型在头文件“stdioh”中。与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdioh文件。scanf函数的一般形式为:
scanf(“格式控制字符串”, 地址表列);
其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。
函数名:write
头文件:<ioh>
函数原型: int write(int handle,void buf,int len);
功能:获取打开文件的指针位置
参数:int handle 为要获取文件指针的文件句柄
void buf 为要写入的内容
int len 为要写入文件的长度
返回值:返回实际写入文件内容的长度
程序例:将字符串写入文件,并读取文件中的字符串,输出结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)