我有一個文件test.txt它看起來像這樣:從文件讀取並打印到另一個文件
5 6
sugli*
odiati
tiri*n
tri*cd
oe*poi
前兩個數字陣列空間維度中,所有這些詞都被投入。
以下任務的代碼是(FILEIN是的test.txt文件):現在創建
int row, col;
fscanf(fileIn, "%d %d%*c", &row, &col);
int cruciverba[row][col];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cruciverba[i][j] = fgetc(fileIn);
}
char space = fgetc(fileIn);
}
陣列。現在我應該編寫一個將字符串寫入另一個文件的函數(或更多),但不是數組中的每個字符串,只是水平和垂直長度> = 2的字符串。請注意0是字符串分隔符。 的目標是有一個包含這些字符串一個output.txt的文件:
sugli
odiati
tiri
tri
cd
oe
poi
sotto
udire
giri
lai
it
co
indi
我知道如何輸出字符串,但我沒有任何想法如何處理這一問題。任何建議?
你沒有字符串。您沒有在每行字符末尾留下* nul-terminating *字符的空格(例如'col + 1')。你有*字符數組*。你可以用'fputc'把它們寫出來。 –
我必須在將它們放出之前檢查它們的長度。這就是我不知道如何解決的問題 – Matt95
這是你必須對此有點聰明的地方。我建議在讀取每個單詞之後留出空間給* nul-terminating *字符並寫入* nul-terminating *字符('0'),以使它們成爲字符串。否則,您需要存儲每個單詞的長度。 (你通常把它作爲每行中的'1st'字符存儲 - 意思是讀取單詞中的每個字符並在'1'開始'j'的保存循環,然後當你讀取最後一個字符時,將'cruciverba [ i] [0] = j')當你用'fputc'將它們寫出來時,使用'for(j = 1; j