2016-03-27 7 views
0

У меня есть проблема, что мне нужно сканировать два целых числа в одной строке, разделенной пробелом, так что код выглядит примерно так:Как проверить зсапЕ двух целых чисел с

scanf("%d %d",&integer1,&integer2); 

И в этом коде Мне нужно проверить, были ли отсканированы два целых числа. Кто-нибудь может мне помочь? Заранее благодарен

+0

Прочтите страницу руководства 'scanf'. Он возвращает количество успешно отсканированных элементов. – Marian

ответ

0

По умолчанию scanf() читает пробел, не имеет смысла в предоставлении пространства. Если вы хотите прочитать два целых числа scanf("%d %d",&integer1,&integer2); и scanf("%d%d",&integer1,&integer2);, оба помогут вам.

Он принимает следующие входы:

1 2 
12 22 
3 2 5 //EOF 

ваша программа будет проходить только после прочтения двух целых чисел. Вам ничего не нужно проверять.

Для устранения EOF

По умолчанию scanf возвращает количество значений, считанных таким образом использовать его.

if(scanf("%d%d",&integer1,&integer2) != 2) 
{ 
    //if more than two values are entered 
    //perform some error handling 
} 
+1

Большое спасибо :) –

+0

Что делать, если есть EOF в stdin? – Marian

+0

@Marian спасибо, что напомнил об этом –