目录
1.fopen和fclose函数的使用方法
open函数用于打开一个文件,并返回一个文件指针,以供后续的文件操作使用。它的函数原型如下:
FILE *fopen(const char *filename, const char *mode);
参数filename是一个字符串,表示要打开的文件名。参数mode是一个字符串,表示打开文件的模式,包括以下几种:
- "r":只读模式,打开一个已存在的文件,如果文件不存在,打开失败。
- "w":写入模式,打开一个文件用于写入,如果文件已经存在,则清空文件内容,如果文件不存在,则创建新文件。
- "a":追加模式,打开一个文件用于追加写入,如果文件不存在,则创建新文件。
- "r+":读写模式,打开一个已存在的文件,允许读写,如果文件不存在,打开失败。
- "w+":读写模式,打开一个文件用于读写,如果文件已经存在,则清空文件内容,如果文件不存在,则创建新文件。
- "a+":读写模式,打开一个文件用于读写,如果文件不存在,则创建新文件,并允许追加写入。
fopen函数返回一个指向FILE结构的指针,如果打开文件失败,返回NULL。
fclose函数用于关闭一个已打开的文件。它的函数原型如下:
int fclose(FILE *stream);
参数stream是一个指向FILE结构的指针,表示要关闭的文件指针。fclose函数返回0表示成功,返回EOF表示失败。
下面是一个使用fopen和fclose函数的示例:
#include<stdio.h>
int main()
{
FILE* ptr = fopen("text.txt", "w");
if (prt = NULL)
{
perror("fopen");
return 1;
}
//对文件操作
if (fclose(ptr) == EOF)
{
printf("关闭文件失败\n");
return 1;
}
return 0;
}
这是我们对文件操作大概的一个框架,希望大家熟悉掌握。
2.fgetc和fputc函数的使用方法
fgetc函数的使用方法:
- 包含头文件:
#include <stdio.h>
- 打开文件并获取文件指针:
FILE *fptr = fopen("filename", "r");
- 使用fgetc函数从文件中读取一个字符:
int c = fgetc(fptr);
- 判断文件结尾或读取到的字符是否有效:
if (c != EOF) { /*处理读取到的字符*/ }
- 关闭文件:
fclose(fptr);
fputc函数的使用方法:
- 包含头文件:
#include <stdio.h>
- 打开文件并获取文件指针:
FILE *fptr = fopen("filename", "w");
- 使用fputc函数写入一个字符到文件中:
fputc(character, fptr);
- 关闭文件:
fclose(fptr);
说明:
- fgetc函数用于从文件中读取一个字符,并返回读取到的字符的ASCII码值(以整数形式)。
- fputc函数用于将一个字符写入到文件中。
- 打开文件时,第二个参数不同可以实现不同的文件操作方式;"r"表示只读,"w"表示只写(若文件不存在则创建,若文件存在则清空内容),"a"表示追加写入(若文件不存在则创建)。
#include<stdio.h>
int main()
{
FILE* prt = fopen("text.txt", "r");
if (prt == NULL)
{
perror("fopen");
return 1;
}
int ch = fgetc(prt);
printf("%c", ch);
if (fclose(prt) == EOF)
{
printf("关闭文件失败\n");
return 1;
}
return 0;
}
#include<stdio.h>
int main()
{
FILE* prt = fopen("text.txt", "w");
if (prt == NULL)
{
perror("fopen");
return 1;
}
fputc('a', prt);
if (fclose(prt) == EOF)
{
printf("关闭文件失败\n");
return 1;
}
return 0;
}
3.fgets和fputs函数的使用方法
fgets和fputs是C语言中用于对文件进行读写操作的函数。
fgets函数用于从文件中读取一行内容。其原型为:
char *fgets(char *str, int n, FILE *stream);
参数str是一个指向字符数组的指针,用于存储读取到的字符串;参数n表示最多读取的字符数;参数stream是一个指向文件的指针,表示从哪个文件中读取。fgets函数会从文件中读取一行内容,包括换行符,最多读取n-1个字符,并将其存储到str中。如果读取成功,返回值是str的地址;如果文件结尾或出错,返回NULL。
下面是一个使用fgets函数的例子:
int main()
{
FILE* prt = fopen("file.txt", "r");
if (prt == NULL)
{
perror("fopen");
return 1;
}
char arr[100];
while (fgets(arr, sizeof(arr), prt) != NULL)
{
printf("%s", arr);
}
if (fclose(prt) == EOF)
{
perror("prt");
return 1;
}
return 0;
}
这段代码打开一个名为file.txt的文件,并一行一行地读取文件内容,并输出到屏幕上。
fputs函数用于将字符串写入文件中。其原型为:
int fputs(const char *str, FILE *stream);
参数str是一个指向要写入的字符串的指针;参数stream是一个指向文件的指针,表示要写入到哪个文件中。fputs函数会将字符串str写入到文件中,并返回非负值表示成功,返回EOF表示失败。
下面是一个使用fputs函数的例子:
int main()
{
FILE* prt = fopen("file.txt", "w");
if (prt == NULL)
{
perror("fopen");
return 1;
}
char arr[100] = { "hello world!!!" };
fputs(arr, prt);
if (fclose(prt) == EOF)
{
perror("prt");
return 1;
}
return 0;
}
这段代码将字符串"Hello, World!"写入到一个名为file.txt的文件中。如果文件不存在,则会创建该文件;如果文件已存在,则会清空文件内容并将字符串写入。
4.fptintf和fscanf的使用方法
fptintf和fscanf是C语言中用于文件处理的函数。
-
fptintf函数用于将数据格式化输出到指定文件中。它的函数原型为:
int fprintf(FILE *stream, const char *format, ...);
- stream:要写入的文件指针,可以是标准输出(stdout)、标准错误(stderr)、或者通过fopen函数打开的文件指针。
- format:格式化输出的字符串。
- ...:可选的参数,用于替代format中的格式化占位符。
例如,下面的代码将字符串写入到文件中:
#include<stdio.h> int main() { FILE* prt = fopen("file.txt", "w"); if (prt == NULL) { perror("fopen"); return 1; } fprintf(prt, "hello world!!!"); if (fclose(prt) == EOF) { perror("prt"); return 1; } return 0; }
-
运行该代码后,将在当前目录下创建一个名为file.txt的文件,内容为"Hello, World!!!"。
-
fscanf函数用于从文件中读取格式化数据。它的函数原型为:
int fscanf(FILE *stream, const char *format, ...);
- stream:要读取的文件指针,可以是标准输入(stdin)或者通过fopen函数打开的文件指针。
- format:格式化输入的字符串。
- ...:可选的参数,用于接收从文件中读取的数据。
例如,下面的代码从文件中读取两个整数并计算它们的和:
#include <stdio.h> int main() { FILE *file = fopen("input.txt", "r"); if (file != NULL) { int num1, num2; fscanf(file, "%d %d", &num1, &num2); printf("Sum: %d\n", num1 + num2); fclose(file); } return 0; }
假设input.txt文件中的内容为"10 20",运行该代码后输出"Sum: 30"。