想要查看fseek,ftell,函数,请登录这个网站:
-
cplusplus.com - The C++ Resources Networkhttps://legacy.cplusplus.com/
还有一个函数没有写出来,是rewind,它是:让⽂件指针的位置回到⽂件的起始位置,感兴趣的可以自行查看哦。
-
fseek的使用:
对于fscanf和fprintf还有其它的函数而言,它们只能指定数让它们读或写出来,而对于fseek函数则是:根据⽂件指针的位置和偏移量来定位⽂件指针(⽂件内容的光标)。其中它两是一一对应关系:则代码为:
#include<stdio.h>//fseek的使用:int main()
{//打开文件FILE* pf = fopen("test.txt", "r");if (pf == NULL){perror("fopen");return 1;}//读文件int ch = fgetc(pf);fseek(pf, 4, SEEK_CUR);ch = fgetc(pf);printf("%c\n", ch);//关闭文件fclose(pf);pf = NULL;return 0;
}
如果想知道后两个的用法,请自式。
-
ftell的使用:
它的意思是:返回⽂件指针相对于起始位置的偏移量。我们废话不多写,直接上代码,则代码为:
//ftell的使用int main()
{//打开文件FILE* pf = fopen("test.txt", "r");if (pf == NULL){perror("fopen");return 1;}//读文件int ch = fgetc(pf);fseek(pf, 0, SEEK_END);ch = fgetc(pf);printf("%d\n", ftell(pf));//关闭文件fclose(pf);pf = NULL;return 0;
}
基本上都是一样的。
-
题目:拷贝文件:
将test1.txt文件中的内容拷贝到test2.txt中去
则代码为:
#include<stdio.h>//拷贝文件:将test1.txt文件中的内容拷贝到test2.txt中去
int main()
{//打开文件FILE* pf1 = fopen("test1.txt", "r");if (pf1 == NULL){perror("fopen :test1.txt ");return 1;}FILE* pf2 = fopen("test2.txt", "w");if (pf2 == NULL){fclose(pf1);perror("fopen :test2.txt ");return 1;}//读文件和写文件int ch = 0;while ((ch = fgetc(pf1)) != EOF){fputc(ch, pf2);}fclose(pf1);pf1 = NULL;fclose(pf2);pf2 = NULL;return 0;
}
代码不繁琐,但是不容易理解。