C语言关于gets的问题

[复制链接]
查看11 | 回复2 | 2010-6-24 21:45:57 | 显示全部楼层 |阅读模式
#include
#include
void sort(char *str[],int n)
{
int i,j;
char *t;
for(j=0;j0)
{
t=str;
str=str[i+1];
str[i+1]=t;
}
}
void main()
{
int m,i;
char a[20],b[20],c[20];
char *str[10]={a,b,c};
scanf("%d",&m);
printf("请输入字符串a:");
gets(a);
printf("请输入字符串b:");
gets(b);
printf("请输入字符串c:");
gets(c);
sort(str,m);
for(i=0;i<m;i++)
printf("%s\n",str);
}
运行时为啥会出现这种情况


回复

使用道具 举报

千问 | 2010-6-24 21:45:57 | 显示全部楼层
scanf("%d",&m);printf("请输入字符串a:");gets(a);当你输入3和回车的时候3给了m而你的回车给了a;而gets(a);是以回车为输入结束。。所以你看到a为空;
回复

使用道具 举报

千问 | 2010-6-24 21:45:57 | 显示全部楼层
gets(a);得到了回车前加fflush(stdin);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行