Записать в файл .txt?

Как я могу записать небольшой фрагмент текста в файл .txt ? Я гуглил более 3-4 часов, но не могу понять, как это сделать он.

fwrite (); имеет так много аргументов, и я не знаю, как его использовать.

Что самая простая функция, которую можно использовать, если вы хотите записать только имя и несколько чисел в файл .txt ?

Изменить: добавлен фрагмент моего кода.

  имя символа;  int число;  ФАЙЛ * f;  f = fopen ("contacts.pcl", "a");  printf (" nНовое имя контакта:");  scanf ("% s", & имя);  printf ("Новый контактный номер:");  scanf ("% i", & число);  fprintf (f, "% c  n [% d]  n  n", имя, номер);  fclose (f);  

  FILE * f = fopen ("file.txt", "w"); if (f ==  NULL) {printf ("Ошибка при открытии файла!  N");  exit (1);}/* напечатать текст */const char * text = "Записать это в файл"; fprintf (f, "Some text:% s  n", text);/* напечатать целые числа и числа с плавающей запятой * /int i = 1; float py = 3.1415927; fprintf (f, "Целое число:% d, float:% f  n", i, py);/* печать одиночных чатактеров */char c = 'A'; fprintf (  f, «Символ:% c  n», c); fclose (f);  

  FILE * fp; char * str = "string"; int x = 10; fp = fopen ("test.txt", "w"); if (fp == NULL) exit (-  1); fprintf (fp, «Это строка, которая записывается в файл  n»); fprintf (fp, «Строка содержит% d слов и ключевое слово% s  n», x, str); fclose (fp  );  

0



Войдите, чтобы продолжить

Если вы когда-либо использовали язык более высокого уровня Возможности файлового ввода-вывода, такие как Python или Rust, вы, возможно, думали, насколько легко манипулировать файлами для решения ваших проблем, даже если читать в файле конфигурации, разбирать файл на токены или просто записывать информацию на диск. Может быть, вам интересно, как файловый ввод-вывод работает в C? *

* Конечно, никто не умеет читать мысли, в том числе и я.

Чтение символа

Самый фундаментальный файловый ввод-вывод начинается с чтения/записи символов. Стандартная библиотека ввода-вывода C предоставляет функции fgetc () и fputc () для чтения и записи символов соответственно.

Как они работают, очень просто. Оба работают с файловыми потоками или, что более широко известно в C, типом FILE .. Этот тип представляет собой структуру, которая отслеживает множество различных состояний, например, сколько символов было прочитано/записано, состояние ошибки и т. Д. Мы никогда не просматриваем и не изменяем информацию, содержащуюся в FILE напрямую, вместо этого мы используем предоставленные нам функции для извлечения этой информации. Все стандартные функции ввода-вывода C, работающие с файлами, отражают это. Все они принимают указатель на ФАЙЛ .

Убрав вводный текст, мы можем начать использовать файлы на C.

Во-первых, нам нужно получить объект FILE для использования в наших файловых приключениях. Как нам его получить? С функцией fopen () .

fopen () прост: первый аргумент — это путь к файлу и второй — режим.

Mode? Что это?

Режим в контекстах файлового ввода-вывода относится к тому, какие разрешения у нас есть для файла и как он открывается. Разрешения говорят о том, можем ли мы читать, писать или и то, и другое. Способ открытия файла может означать разные вещи в зависимости от разрешений.

В fopen () режимом является строка.

  1. r
    Чтение

  2. w
    Запись

  3. r +
    Чтение и запись

  4. w +
    Чтение и письмо. Если файл не найден, создается

  5. a
    Запись и начинается с конца файла. Если файл не найден, создается

  6. a +
    Чтение и запись. Если файл не найден, он создается. Начальная позиция для чтения начинается с начала, но добавляется к файлу при записи

При ошибке fopen () возвращает нулевой указатель или FILE * в случае успеха.

Пример:

  #include  int main (void) {FILE * file = fopen ("test.txt", "w");  if (file == NULL) {//обрабатываем ошибку}//используем файл}  

Для начала допустим, что мы хотим записать сообщение только в файл с помощью fputc () . Очевидно, первое, что нам нужно, это наше сообщение, которое представляет собой строку. Для наших целей это может быть просто строковый литерал.

  #include  #include  int  main (void) {FILE * file = fopen ("message.txt", "w");  if (file == NULL) {printf ("Не удалось открыть файл!  n");  возврат 1;  } char * message = "Я файл  n";  int я = 0;  while (i  

Вывод:

  ~/Desktop ➜ clang  main.c ~/Desktop ➜ ./a.out~/Desktop ➜ cat message.txt Я - файл ~/Desktop ➜ 

Идеально подходит для демонстрации целей, но в реальном мире что-то может внутренне дать сбой, и ваш персонаж может остаться неписаным. fputc () и друзья возвращают символ, написанный в случае успеха, но EOF в случае ошибки. EOF — это макрос, обозначающий E nd O f F и расширяется до постоянного целочисленного выражения. Обычно он возвращается функциями, считывающими символы, чтобы вызывающий код знал, что был прочитан последний символ. В других случаях, таких как fputc () , это означает, что произошла ошибка.

Обновленная версия с проверкой ошибок:

  #include  #include  int main (void) {FILE * file = fopen ("message.txt", "w");  if (file == NULL) {printf ("Не удалось открыть файл!  n");  возврат 1;  } char * message = "Я файл  n";  int я = 0;  while (i  

Намного лучше. Если что-то пошло не так, мы узнаем об этом, как только это произойдет.

Затем, что, если мы пытаемся читать из того же файла? Код в основном будет таким же, за исключением того, что режим будет установлен на чтение, а цикл while теперь читает посимвольно из файла.

Пример:

  #include  #include  int main (void) {FILE * file = fopen ("  message.txt "," r ");  if (file == NULL) {printf ("Не удалось открыть файл!  n");  возврат 1;  } символ сообщения [100];  int c = 0;  int я = 0;  в то время как ((c = fgetc (файл))! = EOF) {сообщение [i] = c;  i ++;  } printf ("% s", message);}  

Вывод:

   ~/Desktop ➜ clang main.c ~/Desktop ➜ ./a.out Я - файл ~/Desktop ➜ 

Далее

В следующем посте мы поговорим о других функциях, доступных нам для файлового ввода-вывода.

Оцените статью
clickpad.ru
Добавить комментарий