scanf использует% f для целого числа - PullRequest
0 голосов
/ 05 сентября 2011

Я пытаюсь разобрать строку, в которой есть несколько чисел, разделенных пробелом. Однако эти числа могут быть целыми числами или числами с плавающей запятой. Есть ли способ в scanf анализировать как целые числа, так и числа как одно общее число с плавающей точкой?

Например:

float arg1, arg2 = 0;
sscanf("LINE 10 10", "LINE %f %f", &arg1, &arg2);

// and
sscanf("LINE 10.0 10.0", "LINE %f %f", &arg1, &arg2);

Ответы [ 2 ]

2 голосов
/ 05 сентября 2011

Это просто работает, целые числа - это особые случаи с плавающей точкой.

Заметьте, однако, что большие целые числа могут быть не в состоянии точно представить числа с плавающей точкой (например, 1e9 + 1), но я не думаю, что вы беспокоитесь об этом.

0 голосов
/ 05 сентября 2011

Оказывается, мои тесты были неправильными, вы можете прочитать из целого числа с% f.

...