Большой ввод строки в C - PullRequest
0 голосов
/ 28 марта 2020

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

#include <stdio.h>
#include <string.h>
#define MAX 100000

int main()
{ 
  char id[MAX];
  FILE *fp = fopen("new.txt", "w");

  fgets(id, MAX, stdin); 

  for(int i=0;i<strlen(id);i++){
    fprintf(fp, "%c", id[i]);
  }

  fclose(fp);
  return 0;
}

Мой код печатает в файл только первые 4096 символов. Что я делаю неправильно? Пожалуйста помоги.

1 Ответ

0 голосов
/ 28 марта 2020

Для чтения и записи больших объемов данных (а не коротких строк текста) рассмотрите возможность использования fread() и fwrite() вместо fgets() и fprintf().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...