Различие между scanf () и fgets ()

Cstr() компилируется встроенный для лучшей производительности.

CType допускает броски между типами, если оператор преобразования определяется

ToString() Между базовым типом, и строка выдает исключение, если преобразование не возможно.

TryParse() От Строки для базирования typeif возможный иначе возвращает false

DirectCast используемый, если типы будут связаны через наследование или совместно используют единый интерфейс, то выдаст исключение, если бросок не будет возможен, [то 116] ничего не возвратит в этом экземпляре

33
задан S.L. Barth - Reinstate Monica 21 July 2012 в 21:06
поделиться

4 ответа

Scanf не выполняет проверку границ. fgets, вероятно, будет лучшим выбором. Затем вы можете использовать sscanf () для его оценки.

Хорошее обсуждение темы здесь - http://cboard.cprogramming.com/c-programming/109243-scanf-vs-fgets.html

Как разрешить ввод пробелов с помощью scanf? (Это получил мой злой близнец прочитал лекцию за то, что забыл об этом - не мне)

6
ответ дан 27 November 2019 в 18:37
поделиться
int scanf(const char * restrict format, ...);

scanf (3) выполняет поиск определенного шаблона , определенного аргументом формата на заданном входе, известном как stdin ], где шаблон определяется вами. Входные данные для scanf (3) , в зависимости от его варианта (scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf), могут быть строкой или файлом.

char *fgets(char * restrict str, int size, FILE * restrict stream);

fgets (3) просто считывает строку из входного файла stream и копирует байты в виде завершающей нулевой строки в буфер str и ограничивает вывод в буфер заданными байтами в размере .

7
ответ дан 27 November 2019 в 18:37
поделиться

Есть несколько отличий. Двумя важными являются:

  • fgets () может читать из любого открытого файла, но scanf () читает только стандартный ввод.
  • fgets () читает строку текст 'из файла; scanf () может использоваться для этого, но также обрабатывает преобразования из строковых во встроенные числовые типы.

Многие люди будут использовать fgets () для чтения строки данных, а затем используйте sscanf () , чтобы проанализировать его.

24
ответ дан 27 November 2019 в 18:37
поделиться

scanf анализирует строку, которую вы читаете (или создавали), а fgets читает строку из открытого ФАЙЛА *. Или вы имеете в виду fscanf?

1
ответ дан 27 November 2019 в 18:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: