Чтение из стандартного файла в файл * - PullRequest
0 голосов
/ 10 октября 2018

У меня есть функция, которая ожидает ФАЙЛ *, и я обычно создаю ее, читая из файла.Теперь при определенных обстоятельствах я хочу читать со стандартного ввода.Есть ли способ прочитать предложение с ранее неопределенной длины из стандартного ввода и записать его в файл *?

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

Вы можете использовать getchar() на терминале с линейной буферизацией и читать его так:

 int i;
 while((i=getchar())!=EOF)

И затем использовать его для записи в файл.

0 голосов
/ 10 октября 2018

Да, просто используйте fp и stdin при необходимости

void copyline(FILE *fp) {
    int ch;
    while ((ch = fgetc(stdin) != EOF) && (ch != '\n')) {
        fputc(ch, fp);
    }
    if (ch != EOF) fputc('\n', fp);
}
0 голосов
/ 10 октября 2018

stdin, stdout и stderr уже имеют тип FILE *.Таким образом, вы можете использовать его как любую другую переменную FILE *.

...