一、打開文件
FILE *fopen(const char *filename, const char *mode);
c++fopen是標準C庫中的文件操作函數,用於打開文件並返回指向該文件的FILE指針,使用該函數前需要包含頭文件#include<stdio.h>
。它接收兩個參數:
- 文件名:要打開的文件名,可以是絕對路徑或相對路徑。
- 模式:打開文件的模式,其中mode為下列模式之一:
模式 | 描述 |
---|---|
“r” | 以只讀方式打開文件。該文件必須存在 |
“w” | 以只寫方式打開文件。如果文件不存在,則創建一個新文件;如果文件存在,則清空該文件 |
“a” | 以追加方式打開文件。如果文件不存在,則創建一個新文件;如果文件存在,則在文件末尾寫入 |
“r+” | 以讀寫方式打開文件。該文件必須存在 |
“w+” | 以讀寫方式打開文件。如果文件不存在,則創建一個新文件;如果文件存在,則清空該文件 |
“a+” | 以讀寫方式打開文件。如果文件不存在,則創建一個新文件;如果文件存在,則在文件末尾寫入 |
打開文件失敗時,該函數將返回空指針NULL。
二、讀寫文件
c++fopen函數成功打開文件後,我們就可以對文件進行讀寫操作了。
1. 寫入數據
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
fwrite函數用於向打開的文件中寫入數據,它的參數解釋如下:
- ptr:要寫入的數據的地址。
- size:要寫入的每個數據項的大小(單位是位元組)。
- count:要寫入的數據項的個數。
- stream:指向FILE對象的指針。
函數的返回值為實際寫入到文件中的數據項的個數。如果沒有成功寫入任何項,則函數將返回0。
2. 讀取數據
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
fread函數用於從打開的文件中讀取數據,它的參數解釋如下:
- ptr:被讀取數據的存儲地址。
- size:每個數據項的大小(單位為位元組)。
- count:要讀取的數據項數。
- stream:指向FILE對象的指針。
函數的返回值為確切讀取到的數據項數。如果讀取失敗,例如讀到文件末尾或者發生了錯誤,函數將返回小於count的值。
三、關閉文件
int fclose(FILE *stream);
使用c++fopen函數成功打開文件之後,應該儘快關閉該文件,避免該文件繼續被佔用。
fclose函數被用來關閉指定的數據流,並釋放與該流相關的所有資源。如果調用成功,則返回值為0;如果失敗,則返回EOF。
四、代碼示例
#include <stdio.h> int main() { FILE *fp = fopen("example.txt", "w"); if(fp == NULL) { printf("Failed to open file.\n"); return 1; } fprintf(fp, "Hello, World!\n"); fclose(fp); char buffer[100]; fp = fopen("example.txt", "r"); if(fp == NULL) { printf("Failed to open file.\n"); return 1; } fread(buffer, sizeof(buffer), 1, fp); printf("%s", buffer); fclose(fp); return 0; }
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/154035.html