Запись в файл вместо стандартного вывода - PullRequest
0 голосов
/ 05 марта 2012

Я пишу программу на C. Эта программа распечатывает файлы, присутствующие в текущем каталоге.Я хочу вывод в некотором текстовом файле, а не на консоли.моя программа: -

int main()
{

        system("ls");
        return 0;
}

Заранее спасибо !!!

Ответы [ 3 ]

2 голосов
/ 05 марта 2012

Поскольку вы уже используете system(), и это уже зависит от платформы, просто используйте возможность перенаправления оболочки - т.е.

system("ls > /home/you/thefile");
1 голос
/ 05 марта 2012

Так вы пишете в файл, просто замените вывод тем, что вы хотите в файле.Как уже упоминал другой человек, вы можете просто передать его в файл.

FILE *ofp;
char outputFilename[] = "out.txt";

ofp = fopen(outputFilename, "w");

if (ofp == NULL) {
  fprintf(stderr, "Can't open output file %s!\n",
          outputFilename);
  exit(1);
}

fprintf(ofp, "ls");
fclose(ofp);
0 голосов
/ 22 сентября 2013

Существует еще одна функция для перенаправления стандартного вывода в файл

###stdio.h
###FILE *freopen(const char *filename, const char *mode, FILE *stream);

    int main()
    {
      char outputFilename[] = "out.txt";
      freopen(filename, "w", stdout)

        system("ls");
        return 0;
    }

Все выходные данные стандартного вывода после перенаправления будут записаны в файл "out.txt"

...