输出应该是这样的:如何在C中编写回声程序?
Enter Character : a
Echo : a
我写
int c;
while (c != EOF)
{
printf("\n Enter input: ");
c = getchar();
putchar(c);
}
,但我得到两个回波后回车输入。
输出应该是这样的:如何在C中编写回声程序?
Enter Character : a
Echo : a
我写
int c;
while (c != EOF)
{
printf("\n Enter input: ");
c = getchar();
putchar(c);
}
,但我得到两个回波后回车输入。
两个字符输入期间检索。你需要扔掉回车。
int c = 0;
int cr;
while (c != EOF)
{
printf("\n Enter input: ");
c = getchar();
cr = getchar(); /* Read and discard the carriage return */
putchar(c);
}
家庭作业?
如果是这样,我不会给出完整的答案/您可能有缓冲输入 - 用户在任何事情交还给您的程序之前需要输入回报。您需要了解如何关闭此功能。
(这取决于你的程序的环境 - 如果你可以给平台的更多细节,以及如何正在运行的程序,我们可以提供更好的答案)
为什么不用scanf
代替?
例子:
char str[50];
printf("\n Enter input: ");
scanf("%[^\n]+", str);
printf(" Echo : %s", str);
return 0;
输出
Enter input: xx
Echo : xx
'scanf'的确是正则表达式? – leppie 2010-10-10 18:34:07
您还应该将scanf输入限制为49个字符,否则可能会导致缓冲区溢出。 – 2010-10-10 18:35:17
采取与fgets如:
char c[2];
if(fgets(c, 2, stdin))
putchar(*c);
else
puts("EOF");
,你不要有任何问题与GET char/scanf(%c)/'\ n'等等。
#include <stdio.h>
#include <conio.h>
main(){
int number;
char delimiter;
printf("enter a line of positive integers\n");
scanf("%d%c", &number, &delimiter);
while(delimiter!='\n'){
printf("%d", number);
scanf("%d%c", &number, &delimiter);
}
printf("\n");
getch();
}
尽管此代码可能会回答这个问题,但提供关于此代码为何和/或如何回答问题的其他上下文可提高其长期价值。 – 2017-06-11 10:44:14
你想仅回显一个字符或整个行吗?回声程序虽然回声整个行。 http://en.wikipedia.org/wiki/Echo_%28command%29 – Arun 2010-10-10 18:20:20
@ArunSaha:我怀疑OP是否意味着'echo'命令。 'echo'打印它的参数,而不是标准输入。 – schot 2010-10-10 19:26:38