C语言文件
C语言文件
文件创建与关闭:
-
创建指针文件FILE*myfile
-
调用fopen(”文件名称“,”打开方式“)打开文件
-
调用fclose(文件指针变量) 关闭文件
#include<stdio.h>
int main(){
FILE*myfile;
myfile=fopen("文件名称",'w');//r表示只读,w表示只写,a表示附加,+表示既要写又要读
if(myfile!=NULL){
//具体文件操作
}
fclose(myfile);//千万不能忘记
}
文件写入,给文件中送内容
-
fputs("this is input ",文件指针变量); 写入字符串
-
fputc(‘A’,文件指针变量);写入字符
-
fprintf(文件指针,"%d%d",a,b); 文件指针+printf部分 a,b是需要放到文件中的
文件输出,读文件
- fgetc(文件指针),每次调用取一个字符
FILE*fp;
fp=fopen("filename","r");
int ch;
while((ch=fgetc(fp))!=EOF){
putchar(ch);
}
- fgets(str,n,文件指针) 从文件流中读取最多
n-1个字符,或者遇到换行符时停止。读取的字符串以\0(空字符)结尾。 str是接变量的
str 存储取到的字符串 n表示最大字符数
char buffer[100]; // 用于存储读取到的字符串
while (fgets(buffer, sizeof(buffer), file) != NULL) {
printf("%s", buffer); // 输出每一行
}
- fscanf(文件指针,"%d",&a);//a也是接变量的。
int id;
char name[50];
float score;
while (fscanf(file, "%d %s %f", &id, name, &score) == 3) {
printf("ID: %d, Name: %s, Score: %.2f\n", id, name, score);
}
fclose(file);
return 0;
-
- 如果
fscanf根据格式化字符串成功读取了 3个字段(%d、%s和%f),它的返回值就是 3。 - 如果未能成功读取 所有字段(例如,文件行中数据格式不符合预期,或者已经到达文件末尾),返回值会小于 3。
- 如果发生错误(如文件读取失败),返回值可能是 EOF(
-1)。
- 如果
文件的随机读写
文件中的内部指示器:指示器记录了文件中“当前读取/写入的字节位置”。每次读写操作完成后,位置指示器会自动向前移动。通过特定函数,可以手动修改这个位置指示器的位置。
- ftell(文件指针):用于获取位置指示器当前所在的位置(相对于文件开头的字节数)。
FILE *file = fopen("example.txt", "r");
printf("当前位置: %ld\n", ftell(file)); // 输出当前位置,初始值为 0
- fseek(文件指针,偏移量,起始位置): 主要用于移动指针
FILE *file = fopen("example.txt", "r");
fseek(file, 10, SEEK_SET); // 将指示器移动到文件开头之后的第10个字节
//SEEK_SET:从文件开头开始偏移。0
//SEEK_CUR:从当前位置开始偏移。1
//SEEK_END:从文件末尾开始偏移。2
- rewind(文件指针) 用于将位置指示器快速重置到文件开头。

浙公网安备 33010602011771号