C语言中gets及getchar()问题
voidinput(int*num,charname[N][8]){inti;for(i=0;i<N;i++){printf("\nInputNo.:");scanf("...
void input(int *num,char name[N][8])
{
int i;
for (i=0;i<N;i++)
{
printf("\nInput No.:");
scanf("%d",&num[i]);
printf("\nInput name:");
getchar(); /* 为什么这里要用getchar() */
gets(name[i]);
}
}
这里能把"getchar()"删除吗?当从键盘输入wang时,程序是用getchar()先接受"w",然后再用gets(name[i])接受余下的字符"ang"吗? 展开
{
int i;
for (i=0;i<N;i++)
{
printf("\nInput No.:");
scanf("%d",&num[i]);
printf("\nInput name:");
getchar(); /* 为什么这里要用getchar() */
gets(name[i]);
}
}
这里能把"getchar()"删除吗?当从键盘输入wang时,程序是用getchar()先接受"w",然后再用gets(name[i])接受余下的字符"ang"吗? 展开
展开全部
不可以
getchar()是用来接收scanf()后的回车键的
,否则name[i]始终是空
#include <stdio.h>
void input(int *num,char name[10][8])
{
int i;
for (i=0;i<10;i++)
{
printf("\nInput No.:");
scanf("%d",&num[i]);
printf("\nInput name:");
/*getchar(); */ /* 删除getchar()的效果 */
gets(name[i]);
printf("%d\n",num[i]);
printf("%s", name[i]);
}
}
int main()
{
int num[10];
char name[10][8];
input(num, name);
return 0;
}
删除后的效果:
展开全部
其实那里不用也可以的,getchar()是用来接受一个字符的,也就是说当执行到那一句时你输入一个回车后,程序继续往下执行,每次循环到那一行你都要输入一个字符。
而gets()是用来输出字符串的,。如果只加数组名将输出全部元素。。
可以的,放在那没什么用处,如果想输出一个换行加个换行符就好了
而gets()是用来输出字符串的,。如果只加数组名将输出全部元素。。
可以的,放在那没什么用处,如果想输出一个换行加个换行符就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可以,getchar()是用来接收scanf()后的回车键的
,否则name[i]始终是空
同意此观点.
,否则name[i]始终是空
同意此观点.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询