Для открытия файлов в C++ существует функция fopen, обладающая множеством параметров-модификаторов, что позволяет в определенной степени менять ее функционал, подстраивая его под каждую конкретную ситуацию. Находится эта функция в библиотеке cstdio или более старой stdio.h.
Рассмотрим структуру
1 |
FILE * fopen(const char * filename, const char * mode); |
В случае успешного открытия функция возвращает ненулевую файловую переменную. Если же открытия не случилось, NULL.
Функция обладает 2 параметрами - fname и mode, первый из которых отвечает за путь к файлу, прописываемый в виде текста, а второй за тип открытия файла. Второй параметр состоит из комбинации букв, обозначающих определенные действия.
Наиболее частые это
- r - означающая, что данные файла можно считывать,
- w - означающая, что в файл можно записывать данные,
- a - данные добавляются в конец файла,
- b - файл распознается, как двоичный,
- t - файл распознается как текстовый,
- + - означающий, что файл открывается для обновления (доступны и чтение, и запись).
Так же есть парные c и n, означающие добавление и сброс флажка фиксации, и многие другие.
Стоит отметить, что при использование ключа w всё предыдущее содержимое файла уничтожается, также код w даёт команду создать новый файл, если файла нет.
Рассмотрим конкретный пример, в котором в непустой файл записывается 1 строка:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> #include <cstdio> using namespace std; int main () { FILE * ask = fopen("somefile.txt", "w"); // код w - данные будут записаны в файл, предыдущее содержимое файла уничтожено if (ask != NULL) { fprintf(ask, "Запись данной строки в файл"); fclose(ask); // закрытие файла } return 0; } |