Как мне прочитать пробел, используя scanf в c?

Проблема: мне нужно быть в состоянии определить, когда два пробела возникают последовательно.

Я прочитал следующие вопросы:

Как прочитать строку из файла \ n с разделителями

как читать сканф с пробелами

И я знаю о проблемах scanf:http://c-faq.com/stdio/scanfprobs.html

Ввод будет в следующем формате:

1 5 3 2  4 6 2  1 9  0

Два пробела указывают на то, что следующий набор данных должен обрабатываться и сравниваться с самим собой. Длина строки неизвестна, а число или целые числа в каждой группе неизвестны. Два пробела - это самое большее, что разделит следующий набор данных.

Хотя я могу использовать fgets и различные встроенные функции для решения этой проблемы, я нахожусь в той точке, где решение проблемы с scanf на этом этапе, вероятно, будет проще. Однако, если это не так, использование fgets, strtok и atoi сделает большую часть работы, но мне все еще нужно идентифицировать два пробела подряд.

Ниже будут приниматься целые числа, пока не будет введено нецелое число.

while ( scanf ( "%d", &x ) == 1 )

Что мне нужно, так это читать пробельные символы, и, если есть два последовательных пробела, я сделаю что-то другое со следующим набором данных.

И как только я получаю пробел, я не знаю, как сказать:

if ((input == "whitespace") && (previousInput == "whitespace"))
  ya da ya da
else (input == "whitespace")
  ya da ya da
else 
  ya da ya da

Я ценю ваше время и благодарю вас за вашу помощь.

Урок выучен: В то время как решение для scanf опубликовано ниже Джонатаном Леффлером, решение было немного более простым с getc (из-за того, что требовалось менее глубокое знание внутреннего scanf, регулярных выражений и char). В ретроспективе лучшее знание регулярных выражений, scanf и char могло бы облегчить проблему и, конечно, знать, какие функции доступны и какую из них было бы лучше использовать с самого начала.

Ответы на вопрос(5)

Ваш ответ на вопрос