输出应该是这样的:
Enter Character : a
Echo : a
我写了
int c;
while (c != EOF)
{
printf("\n Enter input: ");
c = getchar();
putchar(c);
}
但我在回声之后得到两个输入输入。
答案 0 :(得分:3)
输入时检索两个字符。你需要扔掉回车。
int c = 0;
int cr;
while (c != EOF)
{
printf("\n Enter input: ");
c = getchar();
cr = getchar(); /* Read and discard the carriage return */
putchar(c);
}
答案 1 :(得分:2)
作业?
如果是这样,我将不会给出完整的答案/您可能已经获得了缓冲输入 - 用户需要在将任何内容交还给您的程序之前输入。您需要了解如何关闭此功能。
(这取决于您的程序环境 - 如果您可以提供有关平台的更多详细信息以及您如何运行该程序,我们可以提供更好的答案)
答案 2 :(得分:1)
采取fgets例如:
char c[2];
if( fgets( c, 2, stdin ) )
putchar( *c );
else
puts("EOF");
你在使用getchar / scanf(%c)/'\ n'时没有任何问题,等等。
答案 3 :(得分:0)
为什么不使用scanf
?
示例:
char str[50];
printf("\n Enter input: ");
scanf("%[^\n]+", str);
printf(" Echo : %s", str);
return 0;
输出
Enter input: xx
Echo : xx
答案 4 :(得分:0)
#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();
}