关于输入函数的疑问
下面一段代码:
#include <stdio.h>
void main()
{
char a[100];
for (int i=0;i <3;i++)
{
printf( "abc: ");
scanf( "%s ",a);
}
}
我希望有的时候可以不输入任何内容,按回车键后接着向下运行程序~也就是说不需要每次循环都必须输入字符串,有的可以任何内容都不输入~本理所当然的以为这样就可以,经运行发现scanf不支持阿~
例:运行结果:
abc:abcde
abc:
abc:mnpq
请教一下这种情况怎么解决~谢谢~
[解决办法]
你的要求不符合 scanf 标准定义 ~
[解决办法]
可以在处理过程合理修改一下:
for (i=0;i <3;i++)
{
printf( "abc: ");
a[0] = getchar();
if(a[0] == '\n ')continue;
else scanf( "%s ",&a[1]);
getchar();
}
[解决办法]
#include <stdio.h>
void main()
{
char a[100];
for (int i=0;i <3;i++)
{
if((char b=getch())= '\n ')continue;
a[0]=b;
printf( "abc: ");
scanf( "%s ",a+1);
}
}
[解决办法]
#include <stdio.h>
void main()
{
char a[100];
char temp;
int chnum;
for (int i=0;i <3;i++)
{
chnum=0;
printf( "abc: ");
while ((temp=getchar())!= '\n ')
{
a[chnum]=temp;
chnum++;
}
a[chnum]= '\0 ';
}
}