如何使用scanf读取空格分隔的数字

Jai*_*dra 27 c scanf

我想读取使用scanf()函数用空格分隔的数字(整数类型).
我已阅读以下内容

C,从单个输入行读取多个数字(scanf?)
如何用空格读取scanf
这对我没有多大帮助.如何读取带空格的数字作为分隔符.例如,我现在有以下数字作为输入,2 5 7 4 3 8 18我想将它们存储在不同的变量中.
请帮忙.

Nan*_*ale 35

我认为scanf用space/enter读取默认值.如果要打印整数,则可以在'%d'之间提供空格.其他情况也一样.

scanf("%d %d %d", &var1, &var2, &var3);
Run Code Online (Sandbox Code Playgroud)

同样,如果要读取逗号分隔值,请使用:

scanf("%d,%d,%d", &var1, &var2, &var3);
Run Code Online (Sandbox Code Playgroud)

  • scanf忽略大多数`%`指令的空格,所以你通常不希望格式字符串中有空格.所以对于第一种情况(空格分隔的整数),你想要`scanf("%d%d%d",&var,&var2,&var3);`额外的空格实际上并没有伤到任何东西(它们没有效果),但在其他情况下,除非你需要它们,否则你不需要它们. (2认同)

Chr*_*odd 6

scanf使用任何空格作为分隔符,所以如果你只是说它scanf("%d", &var)会跳过任何空格然后读取一个整数(数字直到下一个非数字),仅此而已。

请注意,空格是任何空格——空格、制表符、换行符或回车符。其中任何一个都是空格,其中任何一个或多个将用于分隔连续的整数。