Как записать пользовательский ввод в текстовый файл с использованием fputs на C

#c #int #user-input #text-files

#c #int #пользовательский ввод #текстовые файлы

Вопрос:

Я не лучший программист на c , но я пытаюсь учиться. Я пытаюсь взять пользовательский ввод и записать его в текстовый файл (без перезаписи старого), но я не могу понять, куда вставить переменную (int). Вот мой код на данный момент…

 int main()
{
   int i;
  cout << "Please enter something: ";
  cin >> i;

   FILE * pFile;
  pFile = fopen ("C:\users\grant\desktop\test.txt","a");
  if (pFile!=NULL)

    fputs ("C   Rocks!",pFile);
    fclose (pFile);
  getch();
  return 0;
}
  

Кроме того, если есть более эффективный способ сделать это, пожалуйста, дайте мне знать! Это только то, что я смог найти в Интернете, что сработало.

Ответ №1:

Это способ C. (Вы можете использовать fprintf для вывода вашего целого числа в форматированной строке)

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

 std::ofstream my_file("test.txt");
my_file << i;
  

Ответ №2:

Я думаю, это подойдет:

 {
  string i; // dont forget to #include <string>
  cout << "Please enter something: ";
  cin >> i;

  FILE * pFile;
  pFile = fopen ("C:\users\grant\desktop\test.txt","a");
  if (pFile!=NULL)
  {
     fputs("C   Rocks!", pFile);
     fputs(i.c_str(), pFile);
  }

  fclose (pFile);
  getch();
  return 0;
}
  

Комментарии:

1. Да, но это считывает / записывает произвольную строку, в то время как он, вероятно, хочет знать, как вывести целое число.

2. Поскольку он записывает в текстовый файл, я не думаю, что это имеет значение. Насколько я понимаю, он хочет, чтобы число тоже было записано внутри файла, так почему бы просто не прочитать его как строку?

Ответ №3:

Использование ввода-вывода C на самом деле может быть более эффективным, по крайней мере, с точки зрения усилий программиста, в данном случае, поскольку он использует то же самое operator<< для строк, целых чисел и всех других типов, которые могут быть выведены.

 #include <iostream>
#include <fstream>
int main()
{
    // open the file in append mode
    std::ofstream pFile("C:\users\grant\desktop\test.txt", std::ios::app);
    // append the string to the file
    pFile << "C   Rocks!n";

    // get a number from the user
    int i;
    std::cout << "Please enter something: ";
    std::cin >> i;
    // append the number to the file too
    pFile << i << 'n';
}