我想读取使用scanf()函数用空格分隔的数字(整数类型).
我已阅读以下内容
C,从单个输入行读取多个数字(scanf?)
如何用空格读取scanf
这对我没有多大帮助.如何读取带空格的数字作为分隔符.例如,我现在有以下数字作为输入,2 5 7 4 3 8 18我想将它们存储在不同的变量中.
请帮忙.
问题:我需要能够识别连续出现两个空格的时间.
我读过以下问题:
我知道scanf问题:http://c-faq.com/stdio/scanfprobs.html
输入将采用以下格式:
1 5 3 2 4 6 2 1 9 0
Run Code Online (Sandbox Code Playgroud)
两个空格表示需要处理下一组数据并与其自身进行比较.线的长度未知,每组中的数字或整数是未知的.两个空格是分隔下一个数据集的最多空格.
虽然我可以使用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会使问题变得更容易,当然知道哪些函数可用,哪一个是从一开始就使用的最好的函数.
我正在尝试读取返回分隔文件.充满了短语.
我正在尝试将每个短语放入一个字符串中.
问题是当我尝试用文件读取时
fscanf(file,"%50s\n",string);
Run Code Online (Sandbox Code Playgroud)
该字符串只包含一个单词.当它与空间碰撞时,它会停止读取字符串