c语言中for与gets()函数问题

#include<stdio.h>#include<string.h>intmain(){inty,n,x,i,j;charstr[1000];scanf("%d",&n... #include<stdio.h>
#include <string.h>
int main()
{
int y,n,x,i,j;
char str[1000];
scanf("%d",&n);
for(i=0;i<=n;i++)
{
gets(str);
//scanf("%s",str);
x=strlen(str);
for(y=x-1;y>=0;y--)
printf("%c",str[y]);
printf("%d\n",i);
}
return 0;
}

为什么在第一次循环中,gets()函数不能读取字符串?
展开
 我来答
bignode
2014-12-31 · TA获得超过2664个赞
知道大有可为答主
回答量:1427
采纳率:75%
帮助的人:548万
展开全部
#include<stdio.h>
#include <string.h>
int main()
{
    int y,n,x,i,j;
    char str[1000];
    scanf("%d",&n); //这句执行完后,缓冲区内还有个回车符
    //fflush(stdin); //清空缓冲区,加这句可避免
    for(i=0;i<=n;i++)
    {
        gets(str);  //gets 遇回车返回,str 是空字符串。在想避免,清空缓冲区
        //scanf("%s",str);
        x=strlen(str);
        for(y=x-1;y>=0;y--)
            printf("%c",str[y]);
        printf("%d\n",i);
    }
    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式