Как создать файл c
Обновлено: 21.11.2024
В последней главе объяснялись стандартные устройства ввода и вывода, поддерживаемые языком программирования C. В этой главе рассказывается, как программисты C могут создавать, открывать, закрывать текстовые или двоичные файлы для хранения своих данных.
Файл представляет собой последовательность байтов, независимо от того, является ли он текстовым или двоичным файлом. Язык программирования C обеспечивает доступ к функциям высокого уровня, а также к низкоуровневым (на уровне ОС) вызовам для обработки файлов на ваших устройствах хранения. В этой главе вы познакомитесь с важными функциями управления файлами.
Открытие файлов
Вы можете использовать функцию fopen() для создания нового файла или для открытия существующего файла. Этот вызов инициализирует объект типа FILE, который содержит всю информацию, необходимую для управления потоком. Прототип вызова этой функции выглядит следующим образом:
Здесь имя файла — это строковый литерал, который вы будете использовать для именования файла, а режим доступа может иметь одно из следующих значений —
Открывает существующий текстовый файл для чтения.
Открывает текстовый файл для записи. Если его нет, то создается новый файл. Здесь ваша программа начнет записывать содержимое с начала файла.
Открывает текстовый файл для записи в режиме добавления. Если его нет, то создается новый файл. Здесь ваша программа начнет добавлять содержимое в существующее содержимое файла.
Открывает текстовый файл как для чтения, так и для записи.
Открывает текстовый файл как для чтения, так и для записи. Сначала он усекает файл до нулевой длины, если он существует, иначе создает файл, если он не существует.
Открывает текстовый файл как для чтения, так и для записи. Он создает файл, если он не существует. Чтение начнется с начала, но запись может быть только добавлена.
Если вы собираетесь работать с бинарными файлами, вы будете использовать следующие режимы доступа вместо упомянутых выше —
Закрытие файла
Чтобы закрыть файл, используйте функцию fclose(). Прототип этой функции —
Функция fclose(-) возвращает ноль в случае успеха или EOF, если при закрытии файла произошла ошибка. Эта функция фактически сбрасывает все данные, все еще ожидающие в буфере, в файл, закрывает файл и освобождает всю память, используемую для файла. EOF — это константа, определенная в заголовочном файле stdio.h.
Стандартная библиотека C предоставляет различные функции для чтения и записи файла, посимвольно или в виде строки фиксированной длины.
Запись файла
Ниже приведена простейшая функция для записи отдельных символов в поток —
Функция fputc() записывает символьное значение аргумента c в выходной поток, на который ссылается fp. Он возвращает письменный символ, записанный в случае успеха, иначе EOF, если есть ошибка. Вы можете использовать следующие функции для записи строки с завершающим нулем в поток —
Функция fputs() записывает строку s в выходной поток, на который ссылается fp. В случае успеха он возвращает неотрицательное значение, в противном случае в случае какой-либо ошибки возвращается EOF. Вы также можете использовать функцию int fprintf(FILE *fp,const char *format, . ) для записи строки в файл. Попробуйте следующий пример.
Убедитесь, что у вас есть каталог /tmp. Если это не так, то прежде чем продолжить, вы должны создать этот каталог на своем компьютере.
Когда приведенный выше код скомпилирован и выполнен, он создает новый файл test.txt в каталоге /tmp и записывает две строки, используя две разные функции. Давайте прочитаем этот файл в следующем разделе.
Чтение файла
Ниже приведена простейшая функция для чтения одного символа из файла —
Функция fgetc() считывает символ из входного файла, на который ссылается fp. Возвращаемое значение — это прочитанный символ, или в случае какой-либо ошибки он возвращает EOF. Следующая функция позволяет прочитать строку из потока —
Функция fgets() считывает до n-1 символов из входного потока, на который ссылается fp. Он копирует прочитанную строку в буфер buf, добавляя нулевой символ для завершения строки.
Если эта функция встречает символ новой строки '\n' или конец файла EOF до того, как будет прочитано максимальное количество символов, она возвращает только символы, прочитанные до этой точки, включая символ новой строки. Вы также можете использовать функцию int fscanf(FILE *fp, const char *format, . ) для чтения строк из файла, но она останавливает чтение после обнаружения первого символа пробела.
Когда приведенный выше код компилируется и выполняется, он считывает файл, созданный в предыдущем разделе, и выдает следующий результат —
Давайте немного подробнее рассмотрим, что здесь произошло. Во-первых, fscanf() считывает только это, потому что после этого он столкнулся с пробелом, второй вызов для fgets(), который читает оставшуюся строку, пока не встретит конец строки. Наконец, последний вызов fgets() полностью считывает вторую строку.
Двоичные функции ввода-вывода
Есть две функции, которые можно использовать для двоичного ввода и вывода —
Обе эти функции следует использовать для чтения или записи блоков памяти — обычно это массивы или структуры.
Visual C++ включает в себя компилятор C, который можно использовать для создания чего угодно: от базовых консольных программ до полноценных приложений Windows Desktop, мобильных приложений и многого другого.
В этом пошаговом руководстве показано, как создать простую программу на C в стиле "Hello, World" с помощью текстового редактора, а затем скомпилировать ее в командной строке. Если вы предпочитаете работать на C++ в командной строке, см. Пошаговое руководство. Компиляция собственной программы на C++ в командной строке. Если вы хотите попробовать интегрированную среду разработки Visual Studio вместо использования командной строки, см. раздел Пошаговое руководство. Работа с проектами и решениями (C++) или Использование интегрированной среды разработки Visual Studio для разработки настольных систем C++.
Предпосылки
Для выполнения этого пошагового руководства необходимо установить либо Visual Studio и дополнительные компоненты Visual C++, либо инструменты сборки для Visual Studio.
Visual Studio — это мощная интегрированная среда разработки, которая поддерживает полнофункциональный редактор, диспетчеры ресурсов, отладчики и компиляторы для многих языков и платформ. Сведения об этих функциях, а также о том, как загрузить и установить Visual Studio, включая бесплатную версию Visual Studio Community, см. в разделе Установка Visual Studio.
Версия Visual Studio Инструменты сборки для Visual Studio устанавливает только набор инструментов командной строки, компиляторы, инструменты и библиотеки, необходимые для сборки программ C и C++. Он идеально подходит для создания лабораторий или занятий в классе и относительно быстро устанавливается. Чтобы установить только набор инструментов командной строки, загрузите Инструменты сборки для Visual Studio со страницы загрузок Visual Studio и запустите программу установки. В установщике Visual Studio выберите рабочую нагрузку инструментов сборки C++ и нажмите "Установить".
Прежде чем вы сможете создать программу C или C++ в командной строке, вы должны убедиться, что инструменты установлены и что вы можете получить к ним доступ из командной строки. Visual C++ имеет сложные требования к среде командной строки для поиска инструментов, заголовков и библиотек, которые он использует. Вы не можете использовать Visual C++ в обычном окне командной строки без некоторой подготовки. Вам потребуется окно командной строки разработчика, которое представляет собой обычное окно командной строки, в котором установлены все необходимые переменные среды. К счастью, Visual C++ устанавливает ярлыки для запуска командных строк разработчика, в которых среда настроена для сборки из командной строки. К сожалению, названия ярлыков командной строки разработчика и их расположение различаются почти во всех версиях Visual C++ и в разных версиях Windows. Ваша первая задача пошагового руководства — найти правильный ярлык для использования.
Ярлык командной строки разработчика автоматически устанавливает правильные пути для компилятора и инструментов, а также для всех необходимых заголовков и библиотек. Некоторые из этих значений различаются для каждой конфигурации сборки. Вы должны установить эти значения среды самостоятельно, если вы не используете ни один из ярлыков. Дополнительные сведения см. в разделе Использование набора инструментов MSVC из командной строки. Поскольку среда сборки сложна, мы настоятельно рекомендуем вам использовать ярлык командной строки разработчика, а не создавать свой собственный.
Эти инструкции различаются в зависимости от используемой версии Visual Studio. Чтобы просмотреть документацию для предпочитаемой версии Visual Studio, используйте элемент управления выбора версии. Он находится в верхней части оглавления на этой странице.
Откройте командную строку разработчика в Visual Studio 2022
Если вы установили Visual Studio 2022 в Windows 10 или более поздней версии, откройте меню "Пуск" и выберите "Все приложения". Затем прокрутите вниз и откройте папку Visual Studio 2022 (не приложение Visual Studio 2022). Выберите Командная строка разработчика для VS 2022, чтобы открыть окно командной строки.
Откройте командную строку разработчика в Visual Studio 2019
Если вы установили Visual Studio 2019 в Windows 10 или более поздней версии, откройте меню "Пуск" и выберите "Все приложения". Затем прокрутите вниз и откройте папку Visual Studio 2019 (не приложение Visual Studio 2019). Выберите Командная строка разработчика для VS 2019, чтобы открыть окно командной строки.
Откройте командную строку разработчика в Visual Studio 2017
Если вы установили Visual Studio 2017 в Windows 10 или более поздней версии, откройте меню "Пуск" и выберите "Все приложения". Затем прокрутите вниз и откройте папку Visual Studio 2017 (не приложение Visual Studio 2017). Выберите Командная строка разработчика для VS 2017, чтобы открыть окно командной строки.
Откройте командную строку разработчика в Visual Studio 2015
Если вы установили Microsoft Visual C++ Build Tools 2015 в Windows 10 или более поздней версии, откройте меню "Пуск" и выберите "Все приложения". Затем прокрутите вниз и откройте папку Visual C++ Build Tools. Выберите Visual C++ 2015 x86 Native Tools Command Prompt, чтобы открыть окно командной строки.
Если вы используете другую версию Windows, найдите в меню "Пуск" или на начальной странице папку инструментов Visual Studio, содержащую ярлык командной строки разработчика. Вы также можете использовать функцию поиска Windows для поиска «командной строки разработчика» и выбрать ту, которая соответствует установленной версии Visual Studio. Используйте ярлык, чтобы открыть окно командной строки.
Затем убедитесь, что командная строка разработчика Visual C++ настроена правильно. В окне командной строки введите cl (или CL , регистр не имеет значения для имени компилятора, но имеет значение для параметров компилятора). Вывод должен выглядеть примерно так:
В зависимости от версии Visual C++ и установленных обновлений могут быть различия в текущем каталоге или номере версии. Если приведенный выше вывод похож на то, что вы видите, значит, вы готовы создавать программы C или C++ в командной строке.
Если вы получаете сообщение об ошибке, например "'cl' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл", ошибка C1034 или ошибка LNK1104 при запуске команды cl, то либо вы не используете командная строка разработчика, или что-то не так с вашей установкой Visual C++. Прежде чем продолжить, вы должны устранить эту проблему.
Если вы не можете найти ярлык командной строки разработчика или получаете сообщение об ошибке при вводе cl , возможно, у вас возникла проблема с установкой Visual C++. Если вы используете Visual Studio 2017 или более позднюю версию, попробуйте переустановить разработку рабочего стола с рабочей нагрузкой C++ в установщике Visual Studio. Дополнительные сведения см. в разделе Установка поддержки C++ в Visual Studio. Или переустановите инструменты сборки со страницы загрузок Visual Studio. Не переходите к следующему разделу, пока не сработает команда cl. Дополнительные сведения об установке и устранении неполадок Visual Studio см. в разделе Установка Visual Studio.
В зависимости от версии Windows на компьютере и конфигурации безопасности системы вам может потребоваться щелкнуть правой кнопкой мыши, чтобы открыть контекстное меню для ярлыка командной строки разработчика, а затем выбрать «Запуск от имени администратора», чтобы успешно собрать и запустить программу, которая вы создаете, следуя этому пошаговому руководству.
Создайте исходный файл C и скомпилируйте его в командной строке
В окне командной строки разработчика введите cd c:\, чтобы изменить текущий рабочий каталог на корень вашего диска C:. Затем введите md c:\hello, чтобы создать каталог, а затем введите cd c:\hello, чтобы перейти в этот каталог. Этот каталог будет содержать ваш исходный файл и скомпилированную программу.
Введите notepad hello.c в командной строке разработчика. В появившемся диалоговом окне предупреждения Блокнота выберите Да, чтобы создать новый файл hello.c в рабочем каталоге.
В Блокноте введите следующие строки кода:
В строке меню Блокнота выберите «Файл» > «Сохранить», чтобы сохранить hello.c в рабочем каталоге.
Вернитесь в окно командной строки разработчика. Введите dir в командной строке, чтобы просмотреть содержимое каталога c:\hello. Вы должны увидеть исходный файл hello.c в списке каталогов, который выглядит примерно так:
Даты и другие данные на вашем компьютере будут отличаться. Если вы не видите файл исходного кода hello.c , убедитесь, что вы перешли в созданный вами каталог c:\hello, и в Блокноте сделайте убедитесь, что вы сохранили исходный файл в этом каталоге. Также убедитесь, что вы сохранили исходный код с расширением имени файла .c, а не с расширением .txt.
Чтобы скомпилировать программу, введите cl hello.c в командной строке разработчика.
Вы можете увидеть имя исполняемой программы hello.exe в строках выходной информации, отображаемой компилятором:
Если вы получаете сообщение об ошибке, например "'cl' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл", ошибка C1034 или ошибка LNK1104, командная строка вашего разработчика настроена неправильно. Чтобы узнать, как решить эту проблему, вернитесь к разделу Открытие командной строки разработчика.
Если вы получаете другую ошибку или предупреждение компилятора или компоновщика, просмотрите исходный код, чтобы исправить все ошибки, затем сохраните его и снова запустите компилятор. Для получения информации о конкретных ошибках используйте поле поиска в верхней части этой страницы, чтобы найти номер ошибки.
Чтобы запустить программу, введите hello в командной строке.
Программа отображает этот текст, а затем завершает работу:
Поздравляем, вы скомпилировали и запустили программу C с помощью командной строки.
Дальнейшие шаги
Этот пример "Hello, World" настолько прост, насколько это возможно для программы на C. Реальные программы имеют файлы заголовков и другие исходные файлы, связываются с библиотеками и выполняют полезную работу.
Вы можете использовать шаги, описанные в этом пошаговом руководстве, для создания собственного кода C вместо того, чтобы вводить показанный пример кода. Вы также можете создать множество примеров программ кода C, которые вы найдете в других местах.Чтобы скомпилировать программу с дополнительными файлами исходного кода, введите их все в командной строке, например:
cl файл1.c файл2.c файл3.c
Компилятор выводит программу с именем file1.exe. Чтобы изменить имя на program1.exe, добавьте параметр компоновщика /out:
cl file1.c file2.c file3.c /link /out:program1.exe
Чтобы автоматически обнаруживать больше ошибок программирования, мы рекомендуем вам компилировать с параметром уровня предупреждения /W3 или /W4:
cl /W4 файл1.c файл2.c файл3.c /ссылка /out:program1.exe
Компилятор cl.exe имеет гораздо больше параметров, которые можно применять для сборки, оптимизации, отладки и анализа кода. Для быстрого списка введите cl /? в командной строке разработчика. Вы также можете скомпилировать и связать отдельно и применить параметры компоновщика в более сложных сценариях сборки. Дополнительные сведения о параметрах компилятора и компоновщика и их использовании см. в справочнике по сборке C/C++.
Вы можете использовать NMAKE и make-файлы или MSBuild и файлы проекта для настройки и сборки более сложных проектов в командной строке. Дополнительные сведения об использовании этих инструментов см. в справочнике NMAKE и MSBuild.
Языки C и C++ похожи, но не одинаковы. Компилятор Microsoft C/C++ (MSVC) использует основное правило, чтобы определить, какой язык использовать при компиляции кода. По умолчанию компилятор MSVC обрабатывает все файлы, заканчивающиеся на .c, как исходный код C, а все файлы, заканчивающиеся на .cpp, как исходный код C++. Чтобы заставить компилятор обрабатывать все файлы как C независимо от расширения имени файла, используйте параметр компилятора /TC.
MSVC совместим со стандартами ANSI C89 и ISO C99, но не соответствует им строго. В большинстве случаев переносимый код C будет компилироваться и работать, как и ожидалось. Компилятор обеспечивает дополнительную поддержку изменений в ISO C11/C17. Для компиляции с поддержкой C11/C17 используйте флаг компилятора /std:c11 или /std:c17 . Для поддержки C11/C17 требуется Windows SDK 10.0.20201.0 или более поздней версии. Рекомендуется Windows SDK 10.0.22000.0 или более поздней версии. Вы можете загрузить последнюю версию SDK со страницы Windows SDK. Дополнительные сведения и инструкции по установке и использованию этого пакета SDK для разработки C см. в статье Установка поддержки C11 и C17 в Visual Studio.
Некоторые библиотечные функции и имена функций POSIX не поддерживаются MSVC. Функции поддерживаются, но предпочтительные имена изменились. Дополнительные сведения см. в разделе Функции безопасности в CRT и предупреждение компилятора (уровень 3) C4996.
Это руководство научит вас запускать вашу первую программу на C. Вы узнаете, как:
- Редактировать файлы исходного кода C с помощью Notepad++
- Доступ к терминалу Cygwin в Windows 10
- Скомпилируйте исходный код с помощью компилятора GCC, чтобы получить исполняемый файл.
Начнем!
ШАГ 1. Напишите и сохраните программу
Чтобы написать исходный код вашей первой программы на C, вам нужно открыть текстовый редактор Notepad++. Самый быстрый способ сделать это в Windows 10 — нажать клавишу Win, ввести Notepad++ в окне поиска и нажать Enter.
Запустив текстовый редактор, скопируйте следующий фрагмент исходного кода C:
и вставьте его в редактор.
Да, это ваша первая программа на C! Теперь вы можете сохранить файл где-нибудь, выбрав исходный файл C в раскрывающемся меню «Сохранить как тип» и назвав его hello.c. Вы должны внимательно отметить расположение сохраненного файла, это должно быть что-то вроде C:/Users/b1234567/EEE1008/hello.c , где b1234567 — ваш номер студента.
После написания первой программы мы хотим выяснить, что она на самом деле делает. Нам нужно заставить компьютер выполнить его.
Для этого нам нужно перевести программу в форму, понятную и исполняемую компьютерами. На следующем шаге мы воспользуемся компилятором GCC для получения исполняемого файла.
ШАГ 2. Откройте терминал Cygwin
Мы будем использовать компилятор GCC в качестве приложения командной строки, поэтому нам потребуется доступ к командной строке (также известной как терминал).
Вы можете сделать это так же, как в Notepad++: нажмите клавишу Win и введите Cygwin . Первым вариантом, который вы получите, скорее всего, будет терминал Cygwin64 --- это то, что вам нужно.
ШАГ 3. Перейдите к своей программе с помощью терминала Cygwin
Теперь вам нужно найти вашу программу. Помните, вы должны были принять к сведению его местоположение? Предположим, что он находится в C:/Users/b1234567/EEE1008/hello.c. Чтобы скомпилировать и выполнить вашу программу, вам нужно перейти в каталог C:/Users/b1234567/EEE1008/, изменив текущий каталог с помощью команды cd (расшифровывается как change directory).
Вы можете проверить, где вы находитесь, с помощью команды pwd (напечатать рабочий каталог):
Если все в порядке, вы получите это:
Вы можете просмотреть содержимое каталога, чтобы убедиться, что файл исходного кода находится здесь, с помощью команды ls (список файлов):
Результат должен быть примерно таким:
ШАГ 4. Скомпилируйте программу, чтобы получить исполняемый файл
Чтобы скомпилировать программу и получить исполняемый файл, необходимо запустить компилятор GCC, указав имя исходного файла и имя выходного исполняемого файла. Вы можете сделать это с помощью следующей команды:
Команда должна автоматически выйти и создать исполняемый файл hello.exe, содержащий скомпилированную программу, готовую к выполнению.
ШАГ 5. Запустите исполняемый файл
Чтобы запустить исполняемый файл, просто введите его имя, добавив перед ним символы ./, например:
В результате в терминале должны появиться следующие строки:
Поздравляем! Вы только что написали, скомпилировали и выполнили свою первую программу на C! Ничего страшного, если вы понятия не имеете, что происходит, скоро все станет ясно. Следите за обновлениями! В качестве простого упражнения попробуйте изменить программу так, чтобы она печатала ваше имя вместо текста «Ваше имя».
Это руководство, возможно, познакомило вас с некоторыми новыми концепциями. Давайте подробнее рассмотрим, что они означают.
Исходный файл C – это обычный текстовый файл, содержащий программу на языке программирования C.
Имена этих файлов обычно заканчиваются на .c , например, program.c (или hello.c, как в приведенном выше руководстве). Здесь расширение файла .c является не чем иным, как подсказкой для вас и компьютера, чтобы отличить файлы, содержащие программы C, от обычных текстовых файлов с расширением .txt.
Эти файлы можно просматривать в любом текстовом редакторе. В этом модуле мы будем использовать редактор Notepad++, обеспечивающий подсветку синтаксиса C.
Языки программирования созданы, чтобы помочь людям сообщать машинам, что они хотят, чтобы они делали. Они удобочитаемы для человека и легко преобразуются во что-то, что может выполнить компьютер.
Исполняемый файл — это файл, который может быть запущен компьютером.
В отличие от исходного файла, исполняемый файл не может быть прочитан человеком. Он даже не текстовый: если вы откроете его в Notepad++, вы увидите только кажущиеся бессмысленными цифры и символы (попробуйте!). Это называется исполняемым кодом или просто языком, понятным компьютерам. Чтобы запустить программу, написанную на языке программирования C, вам необходимо перевести ее исходный код в исполняемый код. Это делается с помощью компилятора.
Компилятор — это программа, преобразующая исходный файл в исполняемый файл.
Компилятор — это транслятор. Это здесь, чтобы помочь вам общаться с компьютером. В этом модуле мы будем использовать компилятор GCC для перевода программ, написанных на языке программирования C.
Если вы занимались программированием раньше, вы, вероятно, использовали компиляторы с поддержкой интегрированной среды разработки (например, Visual Studio или Eclipse, которые обычно выполняют компиляцию автоматически), но в этом модуле мы будем разрабатывать программы с помощью текстового редактора. и терминал, чтобы лучше понять, как все работает. Мы будем использовать компилятор GCC в качестве программы командной строки.
Cygwin Terminal позволяет просматривать файловую систему компьютера и запускать программы командной строки (например, компилятор GCC).
Современные операционные системы обычно предоставляют графический интерфейс пользователя (GUI), но было время, когда все взаимодействие человека с компьютером осуществлялось через командную строку. Сегодня только продвинутые пользователи (такие как вы!) умеют пользоваться терминалом.
Всякий раз, когда вы хотите работать с файлом, первым делом нужно создать файл. Файл — это не что иное, как пространство в памяти, где хранятся данные.
Для создания файла в программе на языке C используется следующий синтаксис,
В приведенном выше синтаксисе файл представляет собой структуру данных, определенную в стандартной библиотеке.
fopen — это стандартная функция, которая используется для открытия файла.
- Если файл отсутствует в системе, он создается, а затем открывается.
- Если файл уже присутствует в системе, он напрямую открывается с помощью этой функции.
fp — это указатель файла, указывающий на тип файла.
Каждый раз, когда вы открываете или создаете файл, вы должны указать, что вы собираетесь делать с файлом. Файл в программировании на языке C может быть создан или открыт для чтения/записи. Режим используется, чтобы указать, хотите ли вы открыть файл для какой-либо из указанных ниже целей. Ниже приведены различные типы режимов программирования на языке C, которые можно использовать при работе с файлом.
Режим файла | Описание |
---|---|
r | Открыть файл для чтения. Если файл находится в режиме чтения, то никакие данные не удаляются, если файл уже присутствует в системе. |
w | Открыть файл для записи . Если файл находится в режиме записи, то создается новый файл, если файл вообще не существует. Если файл уже присутствует в системе, то все данные внутри файла усекаются, и он открывается для записи. |
a | Откройте файл в режиме добавления. Если файл находится в режиме добавления, то файл открывается.Содержимое файла не меняется. |
r+ | открыть для чтения и записи с начала |
w+ | открыть для чтения и записи, перезаписать файл |
a+ | открыть для чтения и записи, дополнить файл |
В данном синтаксисе имя файла и режим указываются как строки, поэтому они всегда должны быть заключены в двойные кавычки.
Файл создается в той же папке, в которой вы сохранили свой код.
Вы можете указать путь, по которому вы хотите создать файл
Как закрыть файл
Всегда следует закрывать файл после завершения операций над файлом. Это означает, что содержимое и ссылки на файл удалены. Это предотвращает случайное повреждение файла.
«C» предоставляет функцию fclose для выполнения операции закрытия файла. Синтаксис fclose следующий:
Функция fclose принимает в качестве аргумента указатель файла. Затем файл, связанный с указателем файла, закрывается с помощью функции fclose. Возвращает 0, если закрытие прошло успешно, и EOF (конец файла), если при закрытии файла произошла ошибка.
После закрытия файла тот же указатель файла можно использовать и с другими файлами.
В программировании на языке C файлы автоматически закрываются при завершении программы. Закрытие файла вручную путем написания функции fclose является хорошей практикой программирования.
Запись в файл
В C при записи в файл символы новой строки "\n" должны добавляться явно.
Библиотека stdio предлагает необходимые функции для записи в файл:
- fputc(char, file_pointer): записывает символ в файл, на который указывает file_pointer.
- fputs(str, file_pointer): записывает строку в файл, на который указывает file_pointer.
- fprintf(file_pointer, str, variable_lists): печатает строку в файл, на который указывает file_pointer. Строка может дополнительно включать спецификаторы формата и список переменных variable_lists.
Приведенная ниже программа показывает, как выполнить запись в файл:
Функция fputc():
Приведенная выше программа записывает один символ в файл fputc_test.txt, пока не дойдет до символа следующей строки «\n», который указывает на то, что предложение было успешно записано. Процесс заключается в том, чтобы взять каждый символ массива и записать его в файл.
- В приведенной выше программе мы создали и открыли файл с именем fputc_test.txt в режиме записи и объявили нашу строку, которая будет записана в файл.
- Мы выполняем посимвольную операцию записи, используя цикл for, и помещаем каждый символ в наш файл до тех пор, пока не встретится символ «\n», после чего файл закрывается с помощью функции fclose.
fputs() Функция:
- В приведенной выше программе мы создали и открыли файл с именем fputs_test.txt в режиме записи.
- После того, как мы выполним операцию записи с помощью функции fputs(), записав три разные строки
- Затем файл закрывается с помощью функции fclose.
Функция fprintf():
- В приведенной выше программе мы создали и открыли файл с именем fprintf_test.txt в режиме записи.
- После выполнения операции записи с помощью функции fprintf() путем записи строки файл закрывается с помощью функции fclose.
Чтение данных из файла
Есть три разные функции, предназначенные для чтения данных из файла
- fgetc(file_pointer): возвращает следующий символ из файла, на который указывает указатель файла. Когда конец файла достигнут, EOF отправляется обратно.
- fgets(buffer, n, file_pointer): считывает n-1 символов из файла и сохраняет строку в буфере, к которому в качестве последнего добавляется символ NULL «\0».
- fscanf(указатель_файла, спецификаторы_переменных, адреса_переменных): используется для разбора и анализа данных.Он считывает символы из файла и присваивает ввод списку указателей переменных variable_addresses, используя спецификаторы преобразования. Имейте в виду, что, как и в случае с scanf, fscanf прекращает чтение строки при обнаружении пробела или новой строки.
Следующая программа демонстрирует чтение из файла fputs_test.txt с использованием функций fgets(),fscanf() и fgetc() соответственно:
Результат:
- В приведенной выше программе мы открыли файл с именем «fprintf_test.txt», который был ранее написан с использованием функции fprintf() и содержит строку «Изучение C с Guru99». Мы читаем его с помощью функции fgets(), которая считывает строку за строкой, при этом размер буфера должен быть достаточным для обработки всей строки.
- Мы снова открываем файл, чтобы сбросить файл указателя на начало файла. Создайте различные строковые переменные для обработки каждого слова отдельно. Распечатайте переменные, чтобы увидеть их содержимое. Функция fscanf() в основном используется для извлечения и анализа данных из файла.
- Повторно откройте файл, чтобы сбросить файл указателя на начало файла. Считайте данные и распечатайте их из файла символ за символом, используя функцию getc(), пока не встретится оператор EOF
- После выполнения операции чтения файла с использованием разных вариантов мы снова закрыли файл с помощью функции fclose.
Интерактивное чтение и запись файлов с помощью getc и putc
Это самые простые операции с файлами. Getc означает получение символа, а putc означает ввод символа. Эти две функции используются для обработки только одного символа за раз.
Следующая программа демонстрирует функции обработки файлов в программировании на языке C:
Linux становится раем для разработчиков, поскольку это бесплатная операционная система с открытым исходным кодом. Компилятор Turbo C — это уже старый подход к компиляции программ, поэтому давайте, программисты, перейдем на Linux для новой среды программирования. В этой статье мы объясним, как написать, скомпилировать и запустить простую программу на C. Это послужит вам основой для перехода к более сложным и полезным программам на C, которые вы сможете писать и выполнять в Linux.
Мы выполнили шаги и команды, упомянутые в этой статье, в системе Ubuntu 20.04 LTS, но они будут работать и в других версиях, таких как Ubuntu 18.04, или дистрибутивах, таких как Debian 10, точно так же.
Мы будем использовать инструмент командной строки Linux, Терминал, для компиляции простой программы на C. Чтобы открыть Терминал, вы можете использовать Ubuntu Dash или сочетание клавиш Ctrl+Alt+T.
Шаг 1. Установите необходимые для сборки пакеты
Чтобы скомпилировать и выполнить программу C, в вашей системе должны быть установлены необходимые пакеты. Введите следующую команду от имени пользователя root в терминале Linux:
Вас попросят ввести пароль для root; после этого начнется процесс установки. Убедитесь, что вы подключены к Интернету.
Шаг 2. Напишите простую программу на C
После установки необходимых пакетов давайте напишем простую программу на C.
Откройте графический текстовый редактор Ubuntu и напишите или скопируйте в него следующий пример программы:
Затем сохраните файл с расширением .c. В этом примере я называю свою программу на C как sampleProgram.c
В качестве альтернативы вы можете написать программу C через Терминал в gedit следующим образом:
Это создаст файл .c, в котором вы сможете написать и сохранить программу.
Шаг 3. Скомпилируйте программу C с помощью компилятора gcc
В терминале введите следующую команду, чтобы сделать исполняемую версию написанной вами программы: Реклама
Убедитесь, что ваша программа находится в вашей домашней папке. В противном случае вам нужно будет указать соответствующие пути в этой команде.
Шаг 4. Запустите программу
Последний шаг — запустить скомпилированную программу на C. Для этого используйте следующий синтаксис:
Вы можете увидеть, как программа выполняется в приведенном выше примере, отображая текст, который мы написали для печати.
Из этой статьи вы узнали, как написать, скомпилировать и запустить простую программу на C в Linux. Все, что вам нужно, это необходимые пакеты и нужные навыки, чтобы стать гуру программирования в Linux!
Карим Буздар
Об авторе: Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов. Вы можете связаться с Каримом в LinkedIn
Поиск
Об этом сайте
Читайте также: