最佳答案
媒介
文件操纵是C言语编程中非常重要的一部分,它涉及到数据的长久化存储跟顺序的临时运转。控制C言语的文件操纵,可能帮助开辟者创建、读取、写入跟修改文件,这对编写各种利用软件至关重要。本文将深刻探究C言语中的文件操纵,包含入门技能跟实战剖析。
文件操纵基本
1. 文件的不雅点
在C言语中,文件是一种数据存储方法,它可能存储顺序代码、数据或其他信息。文件平日存储在外部介质上,如硬盘、CD、U盘等。
2. 文件范例
- 顺序文件:存储顺序的代码,如
.c
文件。 - 数据文件:存储数据,如
.txt
文件。 - 二进制文件:存储二进制数据,如
.bin
文件。
3. 文件名
文件名是辨认文件的独一标识符,它由字母、数字、下划线跟某些特别字符构成。
文件操纵函数
1. 打开文件
FILE *fopen(const char *path, const char *mode);
fopen
函数用于打开一个文件,并前去一个指向该文件的指针。path
是文件的道路,mode
指定了打开文件的方法。
2. 封闭文件
int fclose(FILE *stream);
fclose
函数用于封闭一个曾经打开的文件,并开释与之相干的资本。
3. 读取文件
int fgetc(FILE *stream);
int fgets(char *str, int n, FILE *stream);
fgetc
函数用于读取文件中的单个字符,fgets
函数用于读取文件中的一行数据。
4. 写入文件
int fputc(int c, FILE *stream);
int fputs(const char *str, FILE *stream);
fputc
函数用于向文件中写入单个字符,fputs
函数用于向文件中写入一个字符串。
文件次序读写
1. fputc
跟fgetc
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "w+");
char ch;
// 写入字符
while ((ch = getchar()) != EOF) {
fputc(ch, fp);
}
// 定位到文件扫尾
rewind(fp);
// 读取字符
while ((ch = fgetc(fp)) != EOF) {
putchar(ch);
}
fclose(fp);
return 0;
}
2. fputs
跟fgets
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "w+");
char str[100];
// 写入字符串
while (fgets(str, sizeof(str), stdin) != NULL) {
fputs(str, fp);
}
// 定位到文件扫尾
rewind(fp);
// 读取字符串
while (fgets(str, sizeof(str), fp) != NULL) {
printf("%s", str);
}
fclose(fp);
return 0;
}
文件随机读写
1. fseek
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "r+");
char ch;
// 定位到文件末端
fseek(fp, -1, SEEK_END);
// 读取字符
ch = fgetc(fp);
// 定位到文件扫尾
rewind(fp);
// 输出文件内容
while ((ch = fgetc(fp)) != EOF) {
putchar(ch);
}
fclose(fp);
return 0;
}
2. ftell
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "w+");
char ch;
// 写入字符
while ((ch = getchar()) != EOF) {
fputc(ch, fp);
}
// 获取文件长度
long len = ftell(fp);
fclose(fp);
// 打开文件停止读取
fp = fopen("example.txt", "r");
fseek(fp, len - 1, SEEK_SET);
// 输出文件末端内容
ch = fgetc(fp);
putchar(ch);
fclose(fp);
return 0;
}
总结
经由过程本文的进修,信赖你曾经对C言语中的文件操纵有了深刻的懂得。控制文件操纵对C言语开辟者来说至关重要,它可能帮助你更好地管理数据,实现顺序的长久化存储。盼望本文能帮助你轻松操控文件操纵,为你的编程之路添砖加瓦。