Funkcja fopen () w C ++ otwiera określony plik w określonym trybie.
prototyp fopen ()
PLIK * fopen (const char * nazwa pliku, tryb const char *);
fopen()
Funkcja przyjmuje dwa argumenty i zwraca plik strumienia związanego z tym pliku określonym przez filename.
Jest zdefiniowany w pliku nagłówkowym.
Poniżej przedstawiono różne typy trybów dostępu do plików:
Tryb dostępu do plików | Interpretacja | Jeśli plik istnieje | Jeśli plik nie istnieje |
---|---|---|---|
„r” | Otwiera plik w trybie do odczytu | Czytaj od początku | Błąd |
„w” | Otwiera plik w trybie zapisu | Usuń całą zawartość | Utwórz nowy plik |
"za" | Otwiera plik w trybie dołączania | Zacznij pisać od końca | Utwórz nowy plik |
„r +” | Otwiera plik w trybie do odczytu i zapisu | Czytaj od początku | Błąd |
„w +” | Otwiera plik w trybie do odczytu i zapisu | Usuń całą zawartość | Utwórz nowy plik |
„a +” | Otwiera plik w trybie do odczytu i zapisu | Zacznij pisać od końca | Utwórz nowy plik |
fopen () Parametry
- filename: wskaźnik do ciągu zawierającego nazwę pliku do otwarcia.
- tryb: wskaźnik do ciągu określającego tryb, w którym plik jest otwierany.
fopen () Zwracana wartość
- Jeśli się powiedzie,
fopen()
funkcja zwraca wskaźnik do obiektu FILE, który kontroluje otwarty strumień pliku. - W przypadku niepowodzenia zwraca wskaźnik zerowy.
Przykład 1: Otwieranie pliku w trybie zapisu za pomocą fopen ()
#include #include using namespace std; int main() ( int c; FILE *fp; fp = fopen("file.txt", "w"); char str(20) = "Hello World!"; if (fp) ( for(int i=0; i
When you run the program, it will not generate any output but will write "Hello World!" to the file "file.txt".
Example 2: Opening a file in read mode using fopen()
#include using namespace std; int main() ( int c; FILE *fp; fp = fopen("file.txt", "r"); if (fp) ( while ((c = getc(fp)) != EOF) putchar(c); fclose(fp); ) return 0; )
When you run the program, the output will be (Assuming the same file as in Example 1):
Hello World!
Example 3: Opening a file in append mode using fopen()
#include #include using namespace std; int main() ( int c; FILE *fp; fp = fopen("file.txt", "a"); char str(20) = "Hello Again."; if (fp) ( putc('',fp); for(int i=0; i
When you run the program, it will not generate any output but will append "Hello Again" in a newline to the file "file.txt".