#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
char s[20];
for(int i=1;i<=3;i++)
{
printf("enter a name \n "); // printf & scanf
scanf("%s",&s);
printf("the names are %s \n",s);
}
for(int j=1;j<=3;j++)
{
puts("enter a name \n ");
gets(s); // puts and gets
puts(s);
}
char ch='a';
putchar(ch); // putchar and getchar
ch = getchar();
getch();
}
printf语句有重复(三次)......任何人都能解释一下吗?
输出如下:
enter name
my name is alex
the names are my
enter a name
the names are name
enter a name
the names are is
enter a name
alex
enter a name
alex again
enter a name
alex twice
alex twice
答案 0 :(得分:0)
scanf
的 %s
将一直读到第一个空格字符。因此,您在my name is alex
的4个调用空间中读取您的输入scanf
,这将使您的输出看起来很奇怪。如果要读取直到行尾(http://en.cppreference.com/w/cpp/string/basic_string/getline)
getline
请注意,这最初也被标记为c ++,所以我假设OP也可以使用c ++库。