c语言实现文件读取与写入

Python08

c语言实现文件读取与写入,第1张

楼下这个人真的装,不会就算了还在这水,你还是去打斗地主吧!

这个题简单,用fgetc函数直接进行循环写入就行了,话说贴主是湖工大的吧?这是实训题,你还是自己打一下吧,下面是参考答案:

#include<stdlib.h>

#include<stdio.h>

void solve(){

FILE *fp1,*fp2

fp1=fopen("a.txt","r")

fp2=fopen("b.txt","w")

char c

c=fgetc(fp1)

while(c!=EOF)

{

fputc(c,fp2)

c=fgetc(fp1)

}

fclose(fp1)

fclose(fp2)

}

先生成一个新文件,写入想插入的内容,再把原文件逐行读入并写入新文件,最后关闭两个文件,删除旧文件,重命名新文件为旧文件名。

还有就是利用cpoy命令,文件1为要插入的内容,文件2为旧文件,你可以copy 文件1+文件2 文件3

这样文件3就是你要的内容。当然,想在中间插入,这个办法是不可以的。

1、可以使用fseek()来指定文件位置

函数原型:int fseek(FILE *stream, long offset, int fromwhere)

函数说明:函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere(偏移起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。

返回值:如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。

2、例程:向test.txt的末尾添加“this is a text"的字符串。

   #include <stdio.h>

#include <string.h>

int main()

{

const char * szwrite = " this is a text"

FILE *fp = fopen("test.txt", "a+")

if (fp==0) {

printf("can't open file\n")

return 0

}

fseek(fp, 0,SEEK_END)

fwrite(szwrite, strlen(szwrite) * sizeof(char), 1, fp)

fclose(fp)

return 0

}