
2个回答
展开全部
lz 你好
文件的读取和写入应该是:
fread(void *buffer, size_t size,
size_t count, FILE *stream)
fwrite(const void *buffer, size_t
size, size_t count, FILE
*stream)
我只讲解fread的四个参数 , fwrite是类似的:
buffer是一个任意类型的指针 , 你可以传送一个数组的首地址或者一个指针
size是buffer所指类型的长度 , 例如我这里是char , 那就是char类型的长度: sizeof(char)
count就是每次读入的最大数目(每一个数目的大小以size为准)
stream就是一个文件指针
以下是测试代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
char buf[30];//char型数组 , 用于暂存
//文件操作 保存fread实际读的字符个数以及fwrite实际写入的字符个数
int fpOperation;
//文件读操作
if((fp = fopen("src.txt", "r")) == NULL)
{
printf("Can not open the file!\n");
exit(1);
}
fpOperation = fread(buf, sizeof(char), 30, fp);
buf[fpOperation] = '\0';//因为读取的时候, 没有包含'\0', 需要自己加上, 否则会出错
printf("已经读取%d个字符\n", fpOperation);
fclose(fp);//关闭文件指针
//文件写操作
if((fp = fopen("des.txt", "w+")) == NULL)
{
printf("Can not open the file!\n");
exit(1);
}
fpOperation = fwrite(buf, sizeof(char), fpOperation, fp);
printf("已经复制了%d个字符\n", fpOperation);
fclose(fp);//关闭文件指针
return 0;
}
运行结果:
会自动产生一个新文本des.txt 其中的内容就是src.txt的内容
起到一个简单的复制功能
希望能帮助你哈
(附件是程序读入数据的文本)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询