求助c语言问题
这段程序能正常编译运行,但是在我输入abc之类的之后,puts输出的都是乱码有大神帮我看一下原因吗,感激不尽#include<stdio.h>char*xgets(int...
这段程序能正常编译运行,但是在我输入abc之类的之后,puts输出的都是乱码
有大神帮我看一下原因吗,感激不尽
#include<stdio.h>
char * xgets(int b);
int main(void)
{
int z=14;
puts("please enter");
puts(xgets(z));
return 0;
}
char * xgets(int b)
{
char x[14];
char * p=x;
if(fgets(p,b,stdin))
{
while(*p!='\n'&&*p!='\0')
p++;
if(*p=='\n')
*p='\0';
else
while(getchar()!='\n')
continue;
}
return x;}
#include<stdio.h>
char * taxt(int);
int main(void)
{
int a,b;
char * i;
puts("请输入数量");
scanf("%d",&a);
i=taxt(a);
b=0;
while(b<a)
{
if(i[b]=='\n')
putchar('\\n');
else if(i[b]=='\0')
putchar('\\0');
else putchar(i[b]);
b++;
}
return 0;
}
char * taxt(int n)
{
char i[n+1];
int a=0;
while(a<n)
{
i[a]=getchar();
a++;}
i[a]='\0'
return i;
} 展开
有大神帮我看一下原因吗,感激不尽
#include<stdio.h>
char * xgets(int b);
int main(void)
{
int z=14;
puts("please enter");
puts(xgets(z));
return 0;
}
char * xgets(int b)
{
char x[14];
char * p=x;
if(fgets(p,b,stdin))
{
while(*p!='\n'&&*p!='\0')
p++;
if(*p=='\n')
*p='\0';
else
while(getchar()!='\n')
continue;
}
return x;}
#include<stdio.h>
char * taxt(int);
int main(void)
{
int a,b;
char * i;
puts("请输入数量");
scanf("%d",&a);
i=taxt(a);
b=0;
while(b<a)
{
if(i[b]=='\n')
putchar('\\n');
else if(i[b]=='\0')
putchar('\\0');
else putchar(i[b]);
b++;
}
return 0;
}
char * taxt(int n)
{
char i[n+1];
int a=0;
while(a<n)
{
i[a]=getchar();
a++;}
i[a]='\0'
return i;
} 展开
1个回答
展开全部
scanf("%d",&a); a是整型,你输入字符串肯定不对,可以判悔迹断一下scanf的返回值,如果是返回0,说明输入的不是整数,可以再重新输入,具体处理代码可以参考我另一个问题的回答碧李并答案,扰尘链接地址如下
更多追问追答
追问
说错了...是在随便输入一个数字之后输入abc,puts输出不对
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询