Проблема: мне нужно иметь возможность определить, когда два пробела появляются последовательно.
Я прочитал следующие вопросы:
как прочитать строку из файла \ n с разделителями
как читать scanf с пробелами
И я знаю о проблемах 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
Я ценю ваше время и благодарю вас за вашу помощь.
Извлеченный урок: Хотя Джонатан Леффлер (Jonathan Leffler) разместил решение для scanf ниже, решение было немного более простым с getc (поскольку требовалось меньше глубоких знаний о внутреннем scanf, регулярновыражения и символы).В ретроспективе лучшее знание регулярных выражений, scanf и char могло бы облегчить проблему и, конечно же, знать, какие функции доступны и какую из них лучше использовать с самого начала.