继上一篇关于getchar()的文章
关于getchar()吞我字符那些事
如果你知道要输入的数字个数可以直接用for循环+scanf()读入
#include <stdio.h>
int main(void)
{
int i;
int ch = 5;
int array2[30];
for(i = 0;i < ch;i++)
{
scanf("%d",&array2[i]);
}
for(i = 0;i < ch;i++)
{
printf("%d ",array2[i]);
}
}
完美读入,空格无干扰
scanf()还可以限制读的位数
例如你输入一连串无间隔的数字,每次只读取一位
scanf("%1d",&array2[i]);
但是如果是字符就不能这样读入了,如果简单的把数组改为字符数组会被空格占掉
根据吃的情况可以在后面加getchar()
char array2[30];
for(i = 0;i < ch;i++)
{
scanf("%c",&array2[i]);//读字符
getchar();//吃空格
}
for(i = 0;i < ch;i++)
{
printf("%c ",array2[i]);
}
也可以只用getchar(),至于怎么写,看各自的爱好和习惯咯,能跑就行🤣
int i=0;
char ch;
char array2[30];
while((ch = getchar())!='\n')
{
if(ch != ' ')
array2[i++] = ch;
}
for(i = 0;array2[i]!='\0';i++)
{
printf("%c ",array2[i]);
}
小结:
scanf函数是输入函数,getchar是获取用户在命令行输入的字符,scanf函数遇到空格或者是换行符(\n)会跳过,但是getchar函数则不会跳过这些字符,秒用有很多,例如可以用getchar()吃掉缓存区里上一个scanf()剩下的’\n’防止被下一个scanf()读取……