Чтение Чисел С Stdin

Stashevckiy

Well-known member
23.10.2011
56
0
#1
Ребята, подскажите, каким образом считать неопределенное количество чисел с stdin? Т.е., пользователь вводит числа через пробел, но их количество ничем не задано.
 
R

rrrFer

#2
std::cin перейдет в состояние eof когда числа кончатся?
scanf() возвращает отрицательное число иногда - это тот случай?
если scanf не справится - бери fscanf, но вместо файла передавай stdin и жди когда установится флаг feof
 

Stashevckiy

Well-known member
23.10.2011
56
0
#3
std::cin перейдет в состояние eof когда числа кончатся?
scanf() возвращает отрицательное число иногда - это тот случай?
если scanf не справится - бери fscanf, но вместо файла передавай stdin и жди когда установится флаг feof
первое - нет, не перейдет
второе - тоже нет.
третье - а вот это уже интересно, попробую этот способ

Спасибо!
 
R

rrrFer

#4
Ну если не получится - читай строку, и разбирай на числа )
 

Stashevckiy

Well-known member
23.10.2011
56
0
#6
Пробывал вот таким способом - не помогло...После нажатия на Enter все равно ожидает каких-либо данных.
Данные имеют такую форму:54 65 7 8 5 3 6 7 86. Но количество чисел, как я говорил раньше, может быть другим.

C++:
  int d;
int size;
while( ( d = fscanf(stdin, "%d", &size)) != EOF )
{
printf("\n%d", size);
}
 
R

rrrFer

#7
Stashevckiy

не совсем поянтно было чего ты хочешь. Теперь вроде бы понял.

Но ответ был выше.
Читай строку и разбирай ее на числа.

что то типа gets + sscanf

Ну или, читай строку, пиши ее в stringstream и читай оттуда пока он не кончится.