2016-12-01 74 views
1

打印錯誤我初始化此二維數組:陣列用C

#define ROW 3 
#define COL 2 

int _main_(void) 
{ 

    char a[ROW][COL]= 
    { 
    {'@', '.'}, 
    {'.', '.'}, 
    {'.', '.'} 
    }; 

我印刷它喜歡:

int i,j; 
    for (i = 0; i < ROW; i++) { 
     for (j = 0; j < COL; j++) { 
      kprintf("%c", a[i][j]); 
     } 
      kprintf("\n"); 
    } 

輸出:

@. 
    .. 
    .. 

但我希望它是:

@. 
.. 
.. 

我在做什麼錯? (C新手)

+8

什麼是'kprintf'?用'printf'你的代碼可以很好地工作。如果printf失敗,只需'#include '在頂部。 – byxor

+0

或'putchar()'。 –

+5

顯然,您的顯示器需要CR(回車)以及LF(換行符,又名換行符)在行尾。在\ n之前加'\ r';應該生成你想要的顯示作爲快速修復。不過,這可能不是一個好的長期答案。 –

回答

1

變化kprintf("\n");kprintf("\r\n");

通常情況下,\n(新行)的作品本身。但由於某些原因,您需要\r(回車),無論您使用哪種硬件。

+0

傳統上,CRLF序列是「\ r \ n」 - - 在Windows文本文件和大多數Internet文本協議(例如http,smtp,ftp,...)中都可以找到。 –