C语言中的各种文件读写方法小结
常用的文件打开模式
在C语言中,我们进行文件读写操作时需要调用fopen函数打开文件,并传入文件打开模式参数。常用的文件打开模式如下:
- "r" : 只读模式,打开文件用于读取。如果文件不存在,打开文件失败并返回NULL。
- "w" : 写入模式,打开文件用于写入。如果文件不存在,则创建新文件。如果文件已存在,该模式会将文件全部内容删除,再进行写入。
- "a" : 追加模式,打开文件用于写入,文件指针将会定位到文件的末尾。如果文件不存在,则创建新文件。
- "rb" : 二进制文件读取模式
- "wb" : 二进制文件写入模式
- "ab" : 二进制文件追加模式
从文件中读取数据
在C语言中读取文件数据的函数是fread。函数原型如下:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
ptr
:指向要读取内容存储的位置size
:每个数据类型占用的字节数count
:要读取的数据类型数量stream
:要读取的文件
读取文本文件示例代码如下:
#include <stdio.h>
#include <stdlib.h>
#define DATA_SIZE 100
int main(void) {
FILE *fp;
char str[DATA_SIZE];
fp = fopen("input.txt", "r");
if (fp == NULL) {
printf("Failed to open file input.txt\n");
return 1;
}
while (fgets(str, DATA_SIZE, fp) != NULL) {
printf("%s", str);
}
fclose(fp);
return 0;
}
写入数据到文件中
在C语言中写入数据到文件的函数是fwrite。函数原型如下:
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
ptr
:指向要写入内容存储的位置size
:每个数据类型占用的字节数nmemb
:要写入的数据类型数量stream
:要写入的文件
写入文本文件示例代码如下:
#include <stdio.h>
int main(void) {
const char data[] = "This is a test data.\n";
FILE *fp;
fp = fopen("output.txt", "w");
if (fp != NULL) {
fwrite(data, sizeof(char), sizeof(data) / sizeof(char), fp);
fclose(fp);
}
return 0;
}
使用fgetc和fputc函数进行文件读写
除了上述的fread和fwrite函数外,C语言还提供了fgetc和fputc函数用于读取和写入单个字符。
读取单个字符示例代码如下:
#include <stdio.h>
int main(void) {
char ch;
FILE *fp;
fp = fopen("input.txt", "r");
if (fp != NULL) {
while ((ch = fgetc(fp)) != EOF) {
putchar(ch);
}
fclose(fp);
}
return 0;
}
写入单个字符示例代码如下:
#include <stdio.h>
int main(void) {
char ch;
FILE *fp;
fp = fopen("output.txt", "w");
if (fp != NULL) {
while ((ch = getchar()) != EOF) {
fputc(ch, fp);
}
fclose(fp);
}
return 0;
}
以上就是C语言中的文件读写方法的详细讲解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言中的各种文件读写方法小结 - Python技术站