问题:我需要能够识别出连续出现两个空格的情况。
我阅读了以下问题:
而且我也意识到了 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、正则表达式和char),解决方案会更加简单明了。回顾起来,更好的了解正则表达式、scanf和char会使问题更容易解决,当然,了解可用的函数以及从一开始就选择最佳函数也很重要。