Как мне прочитать пробел, используя 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 могло бы облегчить проблему и, конечно, знать, какие функции доступны и какую из них было бы лучше использовать с самого начала.