Каков наилучший способ сканирования поплавка и двойника с помощью scanf? - PullRequest
1 голос
/ 19 июля 2010

Рассмотрим этот пример:

float a;
double b;

scanf("%f%f", &a, &b);   // A
scanf("%Lf%Lf", &a, &b); // B
scanf("%f%Lf", &a, &b);  // C
scanf("%f%lf", &a, &b);  // D

Ответы [ 2 ]

11 голосов
/ 19 июля 2010

Вы можете использовать

scanf("%f %lf", &a, &b);

спецификаторы типа scanf:

  • c : один символ: Считываетследующий персонажЕсли указана ширина, отличная от 1, функция считывает символы ширины и сохраняет их в последовательных местах массива, переданного в качестве аргумента.Пустой символ не добавляется в конце.
  • d : десятичное целое число: Число, необязательно с предшествующим знаком + или -.
  • e, E, f, g, G : Плавающая точка: Десятичное число, содержащее десятичную точку, необязательно с предшествующим знаком + или - и опционально сопровождаемое символом e или E и десятичным знакомчисло.Два примера допустимых записей: -732.103 и 7.12e4
  • o : целое число в восьмеричной системе.
  • s : строка символов: Это будет читать последующие символы до тех пор, пока пробелы не будут найдены (пробельные символы считаются пустыми, новая строка и табуляция).
  • u : десятичное целое число без знака.
  • x, X : шестнадцатеричное целое число.

Модификаторы:

  • h :short int (для d, i и n) или unsigned short int (для o, u и x)
  • l : long int (для d, i и n) или без знакаlong int (для o, u и x) или double (для e, f и g)
  • L : long double (для e, f и g)

Источник: http://www.cplusplus.com/reference/clibrary/cstdio/scanf/

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