fflush()
是 C 语言中的一个 I/O 函数,用于将缓冲区的内容写入文件或设备
以下是 fflush()
与其他 I/O 函数的协同使用示例:
fprintf()
和 fscanf()
结合使用:#include<stdio.h>
int main() {
FILE *file = fopen("test.txt", "w+");
if (file == NULL) {
printf("Error opening file\n");
return 1;
}
// 写入数据到缓冲区
fprintf(file, "Hello, World!\n");
// 清空缓冲区并将数据写入文件
fflush(file);
// 将文件指针移动到文件开头
rewind(file);
char buffer[256];
// 从文件读取数据
fscanf(file, "%s", buffer);
printf("Read from file: %s\n", buffer);
fclose(file);
return 0;
}
fwrite()
和 fread()
结合使用:#include<stdio.h>
int main() {
FILE *file = fopen("test.bin", "wb+");
if (file == NULL) {
printf("Error opening file\n");
return 1;
}
int data[] = {1, 2, 3, 4, 5};
int size = sizeof(data) / sizeof(data[0]);
// 写入数据到缓冲区
fwrite(data, sizeof(int), size, file);
// 清空缓冲区并将数据写入文件
fflush(file);
// 将文件指针移动到文件开头
rewind(file);
int buffer[size];
// 从文件读取数据
fread(buffer, sizeof(int), size, file);
for (int i = 0; i< size; i++) {
printf("Read from file: %d\n", buffer[i]);
}
fclose(file);
return 0;
}
在这些示例中,我们首先使用 fprintf()
、fwrite()
等函数将数据写入缓冲区。然后,我们使用 fflush()
函数将缓冲区的数据写入文件或设备。接下来,我们可以使用 fscanf()
、fread()
等函数从文件中读取数据。这样,我们可以确保在读取数据之前已经将所有数据写入文件。