Как записать пользовательский ввод в текстовый файл, используя fputs в C ++ - PullRequest
0 голосов
/ 05 апреля 2011

Я не лучший программист на с ++, но я пытаюсь учиться.Я пытаюсь взять пользовательский ввод и записать его в текстовый файл (без перезаписи старого), но я не могу понять, где подключить переменную (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;
}

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

Ответы [ 3 ]

2 голосов
/ 05 апреля 2011

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

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

std::ofstream my_file("test.txt");
my_file << i;
1 голос
/ 05 апреля 2011

Использование C ++ I / O может на самом деле быть более эффективным, по крайней мере, с точки зрения усилий программиста, в этом случае, поскольку он использует тот же 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';
}
1 голос
/ 05 апреля 2011

Я думаю, что это будет делать:

{
  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;
}
...