我正在閱讀C語言書籍,我堅持下面的代碼...正如我已經顯示的C代碼我使用for()循環來獲取字符in.and相同我用循環在屏幕上打印字符......如果用戶按下enter循環將退出,另一個用於在屏幕上打印的()循環將使用i變量的值。但是屏幕上的結果是相反的。我可以得到你的意見,我怎麼能解決它?一次獲得一個字符與loop_in_C
#include <string.h>
#include <stdio.h>
int main()
{
int i;
char msg[25];
printf_s("Type up to 25 characters then press Enter..\n");
for (i = 0; i < 25; i++)
{
msg[i] = getchar();// Gets a character at a time
if (msg[i] == '\n'){
i--;
break;// quits if users presses the Enter
}
}putchar('\n');
for (; i >= 0 ; i--)
{
putchar(msg[i]);// Prints a character at a time
}putchar('\n');/*There is something wrong because it revers the input */
getchar();
return 0;
林不熟悉C,但我現在可以告訴你,你使用的for循環遞減不遞增,這可能解釋了爲什麼它是以相反的順序打印字符...你期望做什麼就印刷結果而言,你的第二個for循環? – ryekayo 2015-04-02 21:15:40
如果我將使用遞增運算符,它將執行到無限循環....並且它將導致緩衝區溢出 – JFC 2015-04-02 21:19:38
正確但for循環完全按照您的要求執行,按相反順序打印字符。你期待它做什麼? – ryekayo 2015-04-02 21:20:34