If I have seen further, it is by standing on the shoulders of giants.
如果我能看得更远,是因为站在巨人的肩膀上。
C语言文件操作主要通过文件指针进行。文件指针是一个指向文件的指针,它用于在文件中进行读写操作。在C语言中,文件指针的类型是FILE,需要通过fopen函数打开文件并返回文件指针。
fopen:打开文件
FILE *fopen(const char *filename, const char *mode);
第一个参数是文件名,第二个参数是打开文件的模式。常见的模式有:
fopen函数打开文件成功后,返回文件指针;失败则返回NULL。
fclose:关闭文件
int fclose(FILE *stream);
参数是要关闭的文件指针。关闭文件后,不再允许在该文件上进行读写操作。
fgetc:读取字符
int fgetc(FILE *stream);
参数是要读取字符的文件指针。函数返回读取的字符,如果读取成功则返回字符的ASCII码值,如果读到文件末尾则返回EOF。
fputc:写入字符
int fputc(int character, FILE *stream);
第一个参数是要写入的字符的ASCII码值,第二个参数是要写入字符的文件指针。函数返回写入的字符,成功返回字符的ASCII码值,失败返回EOF。
fgets:读取字符串
char *fgets(char *str, int num, FILE *stream);
第一个参数是存储读取字符串的缓冲区,第二个参数是最多读取的字符数(包括字符串结尾的’\0’),第三个参数是要读取字符串的文件指针。函数返回读取的字符串,如果读取成功则返回str指针,否则返回NULL。
fputs:写入字符串
int fputs(const char *str, FILE *stream);
第一个参数是要写入的字符串,第二个参数是要写入的文件指针。函数返回写入成功的字符数,失败返回EOF。
fprintf:格式化写入
int fprintf(FILE *stream, const char *format, ...);
第一个参数是要写入的文件指针,第二个参数是格式化字符串,后面可以跟着格式化参数。函数返回写入成功的字符数,失败返回EOF。
fscanf:格式化读取
int fscanf(FILE *stream, const char *format, ...);
第一个参数是要读取的文件指针,第二个参数是格式化字符串,后面可以跟着要读取的变量。函数返回成功匹配和赋值的变量数,失败返回EOF。
sscanf: 读取格式化输入
int sscanf(const char *str, const char *format, ...);
str为要读取数据的字符数组,format为格式字符串,后面的…表示格式字符串中的各个格式符对应的变量。
例如:
#include <stdio.h>
int main()
{
char str[100];
int num;
sprintf(str, "123"); // 将字符串"123"存储到str中
sscanf(str, "%d", &num); // 将str中的整数读取到num中
printf("num: %d\n", num); // 输出num的值
return 0;
}
此时,name变量将得到字符串"John",age变量将得到整数20。
sprintf:将格式化的数据输出到一个字符数组中。
int sprintf(char *str, const char *format, ...);
str为输出结果存放的字符数组,format为格式字符串,后面的…表示格式字符串中的各个格式符对应的变量。
例:
#include <stdio.h>
int main()
{
char str[100];
int num = 123;
sprintf(str, "%d", num); // 将num的值转换为字符串并存储到str中
printf("str: %s\n", str); // 输出str的值
return 0;
}
ftell:获取文件指针的当前位置
long ftell(FILE *stream);
fseek:设置文件指针的位置
int fseek(FILE *stream, long offset, int origin);
其中,stream是要定位的文件指针,offset是偏移量,origin是偏移量相对位置,可以是以下值之一:
rewind:重置文件指针
void rewind(FILE *stream);
将已打开文件的指针重新定位到文件的开头,从而可以重新读取文件的内容。
请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!
都看到这里啦!真棒(*^▽^*)
可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家
编程小白写作,如有纰漏或错误,欢迎指正