輸出應該是這樣的:如何在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