我想讀取C文件並將字符存儲在字符的二維數組中。我的ROWS
和COL
是10,據我所知,我的循環應該爲每列和每行執行10次。所以我不認爲應該有任何未初始化的單元格。此外,我也搜索了類似的問題,他們都談論數組的初始化,因爲程序有時會遺漏出包含垃圾的空單元,但在我的情況下,它應該沒有這個問題,應該這樣嗎?使用fgetc將數據加載到2d數組中?
是我的代碼是這樣的:
for (row = 0; row < ROWS; row++) {
for (col = 0; col < COL; col++) {
int chtr = fgetc(fp);
if (chtr != '\n') {
grid[row][col] = chtr;
}
}
}
左一個是我的輸出,但它包含隨機字符,但是,我預期輸出應該像正確的:
什麼可能導致這種行爲?
它可能有\ r包機? \ n刪除它。如果它是\ n你沒有在網格[行] [colum]中放置任何東西,並在該位置獲得原始網格垃圾。 – Mquinteiro
我檢查過,但它跳過一些單元格,所以我認爲它不是'\ r'。 @Mquinteiro – Saad
那麼剛剛做到了這一點,當我檢查'\ r'字符時,它給出了錯誤的輸出。但是,當我確實減少單元格以防它是'\ n'字符時,它會給我正確的輸出。 @Mquinteiro – Saad