C 为什么按空格键不在数组中放置值? #包括 int main(){ printf(“输入10个数字:”); int a[10],i=0; 对于(i=0;i
当我在每个数组中输入值时,为什么按空格键可以在数组中输入值 例如,当我写入1space2space3space时,每个值都放在每个数组中(a[0]、a[1]、a[2]) 为什么会发生这种情况?当您将scanf()与%d一起使用时,输入流接受整数值,并将其他值视为分隔符 当您对%d使用scanf()时,输入流接受整数值,并将其他值视为分隔符 来自C标准(7.21.6.2 fscanf功能) 12转换说明符及其含义如下:C 为什么按空格键不在数组中放置值? #包括 int main(){ printf(“输入10个数字:”); int a[10],i=0; 对于(i=0;i,c,scanf,C,Scanf,当我在每个数组中输入值时,为什么按空格键可以在数组中输入值 例如,当我写入1space2space3space时,每个值都放在每个数组中(a[0]、a[1]、a[2]) 为什么会发生这种情况?当您将scanf()与%d一起使用时,输入流接受整数值,并将其他值视为分隔符 当您对%d使用scanf()时,输入流接受整数值,并将其他值视为分隔符 来自C标准(7.21.6.2 fscanf功能) 12转换说明符及其含义如下: #include <stdio.h> int main(){
#include <stdio.h>
int main(){
printf("Enter 10 numbers: ");
int a[10], i = 0;
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
}
和(7.22.1.4 strtol、strtoll、strtoul和strtoull功能)
space
2space
3space
第一个主题序列是1,第二个主题序列(跳过空白字符后)是2,第三个主题序列是3。它们用于在[0]、[1]和[2]中相应地存储整数,因为每个主题序列代表一个有效整数
考虑到在一般实现中,对文本流使用所谓的行缓冲
来自C标准(7.21.3文件)
#include <stdio.h>
int main(){
printf("Enter 10 numbers: ");
int a[10], i = 0;
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
}
和(7.22.1.4 strtol、strtoll、strtoul和strtoull功能)
space
2space
3space
第一个主题序列是1,第二个主题序列(跳过空白字符后)是2,第三个主题序列是3。它们用于在[0]、[1]和[2]中相应地存储整数,因为每个主题序列代表一个有效整数
考虑到在一般实现中,对文本流使用所谓的行缓冲
来自C标准(7.21.3文件)
您希望发生什么情况?您是否阅读了scanf()上的规范。例如@jimmm这是一个很棒的游戏!不清楚您是否对(a)标准输入行缓冲如何工作,或(b)格式化输入如何读取跳过空格感到困惑。@jimmm:空格键本身并没有特定的功能,如果使用Tab键或Enter键,您会得到相同的结果。事实上,您在三个数字之间引入了空格,这就
scanf
而言,将它们分成了三个独立的输入。您希望发生什么情况呢?您阅读了scanf()上的规范了吗。例如@jimmm这是一个很棒的游戏!不清楚您是否对(a)标准输入行缓冲如何工作,或(b)格式化输入如何读取跳过空格感到困惑。@jimmm:空格键本身并没有特定的功能,如果使用Tab键或Enter键,您会得到相同的结果。事实上,您在三个数字之间引入了空格-这将它们分割成三个独立的输入,就scanf
而言。只有空格是分隔符。空格,制表符,输入。。。所有都是分隔符这些都称为空白。但您的回答听起来好像数字以外的任何字符都是分隔符,这是不正确的。@interjay:从%d
转换说明符的角度来看,任何非十进制数字字符都会标记输入的结束,无论是否为空格。@JohnBode标记输入的结束,是的。但“分隔符”意味着它可以分隔两个不同的值。如果在问题中的程序中输入1,2,3,4,5,6,7,8,9,0
,它将不起作用。只有空格是分隔符。空格,制表符,输入。。。所有都是分隔符这些都称为空白。但您的回答听起来好像数字以外的任何字符都是分隔符,这是不正确的。@interjay:从%d
转换说明符的角度来看,任何非十进制数字字符都会标记输入的结束,无论是否为空格。@JohnBode标记输入的结束,是的。但“分隔符”意味着它可以分隔两个不同的值。如果你在问题中的程序中输入1,2,3,4,5,6,7,8,9,0
,它将不起作用。回答不错,我不明白为什么到目前为止我是唯一的投票人。顺便说一句,你不是该找份工作了吗?金融服务业迫切需要有能力的C++开发者。好的答案,我不明白为什么我是迄今为止唯一的支持者。顺便说一句,这不是个好主意吗