#include <stdio.h>
int main()
{
char name[100];
int i;
for (i=0; i<3;i++){
printf("\nEnter the name : ");
scanf("%[^\n]",name);
}
printf ("\nName of Student : %s ",name);
}
我希望这段代码要求提供3次名称,但是只有这样做一次,感谢任何帮助。
答案 0 :(得分:1)
#include <stdio.h>
int main()
{
char name[100];
int i;
for (i=0; i<3;i++){
printf("\nEnter the name : ");
scanf ("%[^\n]%*c", name);
}
printf ("\nName of Student : %s ",name);
}
[]是扫描集字符。 [^ \ n]告诉我输入不是新行(&#39; \ n&#39;)。然后使用%* c,它从输入缓冲区中读取换行符。
你也可以使用:
scanf(" %[^\n]s",name);
答案 1 :(得分:0)
使用时:
scanf("%[^\n]",name);
换行符留在输入流中。当第二次和第三次调用该函数时,scanf
将零个字符读入接收参数。
添加一行以阅读并丢弃该行后面的换行符。
getc();