當你把 EditBox 的 Multiline 和 Want Return 兩個 property 設為 True 後,你可以在 EditBox 中輸入這樣的內容:
1 2 3
4 5 6
7 8 9
看不見的換行符號,是 CR (Carriage
Retrun) and LF (Line
Feed), 分別對應 ASCII code 13 和 10, 在 C 語言中以 \r 和 \n 來表示:
1 | 2 | 3 | \r | \n | ||
4 | 5 | 6 | \r | \n | ||
7 | 8 | 9 |
1 | 2 | 3 | \r | \n | 4 | 5 | 6 | \r | \n | 7 | 8 | 9 |
接下來我們可以試著把這個字串轉到一個 3x3 的整數陣列中。
const int N = 3;
int a[N][N];
int nRow = 0;
int nColumn = 0;
char c;
CString str1;
GetDlgItem(IDC_EDIT1)->GetWindowText(str1);
for (int i=0; i < str1.GetLength(); i++)
{
if ( isdigit( c = str1.GetAt(i) ) )
a[nRow][nColumn++] = ( c - 48 );
else if ( c == '\n' )
{
++nRow;
nColumn = 0;
}
}
大家可以練習看看,把下圖左邊兩個 EditBox
的內容各轉換成一個矩陣,然後把矩陣相加的結果,顯示在右方那個 Read-Only
的 EditBox。