下面我将详细讲解“C语言文件操作详情(一)”的完整攻略。
一、文件操作的概念
在C语言中,文件被看作是一系列按照一定顺序排列的记录(Record)的集合。C语言提供了一组文件操作函数,可以用来打开、关闭、读写、移动文件。
二、文件的打开和关闭
在C语言中,打开文件需要使用fopen函数,关闭文件使用fclose函数。fopen函数可以使用不同的方式打开文件,如读取、写入等,同时也可以指定打开文件的模式,如创建新文件、追加等。
2.1 打开文件
FILE fopen(const char filename, const char *mode);
其中,filename参数是要打开的文件路径,mode参数表示打开文件的模式,常见的模式有:
- "r":以只读方式打开文件,如果文件不存在,则返回NULL。
- "w":以只写方式打开文件,如果文件不存在,则创建文件,如果文件已经存在,则清空文件内容。
- "a":以追加方式打开文件,如果文件不存在,则创建文件。
- "rb":以二进制只读方式打开文件。
- "wb":以二进制只写方式打开文件。
- "ab":以二进制追加方式打开文件。
示例1:
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("test.txt", "w");
if(fp == NULL)
{
printf("Cannot open file.\n");
return 1;
}
fprintf(fp, "This is testing for fprintf...\n");
fputs("This is testing for fputs...\n", fp);
fclose(fp);
return 0;
}
这段代码中,打开test.txt文件并写入内容,然后关闭文件。
2.2 关闭文件
int fclose(FILE *stream);
fclose函数用来关闭一个文件。如果文件关闭成功,则返回0,否则返回EOF。
示例2:
#include <stdio.h>
int main()
{
FILE *fp;
char str[60];
/* writing data to file */
fp = fopen("test.txt", "w");
fprintf(fp, "This is writing test.\n");
fclose(fp);
/* reading data from file */
fp = fopen("test.txt", "r");
fscanf(fp, "%s", str);
printf("1: %s\n", str);
fgets(str, 60, fp);
printf("2: %s\n", str);
fgets(str, 60, fp);
printf("3: %s\n", str);
fclose(fp);
return 0;
}
这段代码中,先向文件中写入内容,然后重新打开文件以读取数据。在读取数据后,使用fclose函数关闭文件。
三、文件的读写
3.1 写入文件
在C语言中,写入文件主要使用fprintf和fputc函数。
int fprintf(FILE stream, const char format, ...);
int fputc(int c, FILE *stream);
其中,fprintf函数可以将格式化输出写入文件,fputc则将一个字符写入文件中。
示例3:
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("test.txt", "w");
fprintf(fp, "This is testing for fprintf...\n");
fputs("This is testing for fputs...\n", fp);
fputc('A', fp);
fclose(fp);
return 0;
}
这段代码中,使用fprintf函数和fputs函数向文件中写入数据,并使用fputc函数将字符A写入文件中。
3.2 读取文件
在C语言中,读取文件主要使用fscanf函数和fgets函数。
int fscanf(FILE stream, const char format, ...);
char fgets(char string, int n, FILE *stream);
其中,fscanf函数根据指定的格式从文件中读取数据,fgets函数从文件中读取一行数据。
示例4:
#include <stdio.h>
int main()
{
FILE *fp;
char str[60];
/* writing data to file */
fp = fopen("test.txt", "w");
fprintf(fp, "This is writing test.\n");
fclose(fp);
/* reading data from file */
fp = fopen("test.txt", "r");
fscanf(fp, "%s", str);
printf("1: %s\n", str);
fgets(str, 60, fp);
printf("2: %s\n", str);
fgets(str, 60, fp);
printf("3: %s\n", str);
fclose(fp);
return 0;
}
这段代码中,向文件中写入内容,然后重新打开文件以读取数据。在读取数据时,使用fscanf函数和fgets函数,分别读取一段内容和一行内容。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言文件操作详情(一) - Python技术站