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()
等函數從文件中讀取數據。這樣,我們可以確保在讀取數據之前已經將所有數據寫入文件。