[問題] 找不出問題...

看板C_and_CPP (C/C++)作者 (嘿)時間16年前 (2009/06/12 16:59), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
以下是一段小程式,主要的流程是這樣的: 程式執行之後,會一行一行讀入某個檔案的內容, 一開始都是一個數字,比如說"2", 表示接下來有兩行資料待讀取,可以是任何字串(不包含空白) 最後程式會把輸入的這幾組字串依序列印出來。 比如說,檔案內容為 2 a bb 3 ccc ddddd eeeeeee 那輸出結果就是 a bb ccc ddddd eeeeeee 應該很單純吧? 但是我最後印出來的結果都只是最後一筆重複N次 以上面的例子來說就是 aa aa eeeeeee eeeeeee eeeeeee =================================================== #include<stdio.h> #include<stdlib.h> #define WIDTH 60 int main(void){ int count = 0; //表示目前讀入第幾筆資料 int N; //表示接下來有N行的資料待讀入 int i; char input[WIDTH]; //檔案的每一行讀入之後會暫存在這裡 char **word; //存放除了數字行以外的其餘內容 while(scanf("%s",input)!=-1){ if(count == 0){ N = atoi(input); word = (char**)malloc(sizeof(char*)*N); count++; } else if(count == N){ word[count-1] = input; count = 0; } else{ word[count-1] = input; count++; } } for(i=0;i<N;i++) printf("%s\n",word[i]); return 0; } 當然如果改成讀一筆印一筆 那是沒問題的 但因為後續希望是一次讀進多筆之後再處理 也就是說 先把所有資料都存放在word所指的指標陣列所指到的區塊內 所以才這樣寫 卻遇到這樣的問題 想請問一下哪裡出錯了? 謝謝:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.109.237 ※ 編輯: subeyes 來自: 203.70.109.237 (06/12 17:07)

06/12 18:08, , 1F
input[WIDTH]; ->每次讀進來就洗掉啦
06/12 18:08, 1F
※ 編輯: subeyes 來自: 203.70.108.75 (06/13 09:21)

06/13 09:22, , 2F
發現我耍笨了 word只是pointer...orz 感謝樓上提醒
06/13 09:22, 2F
文章代碼(AID): #1ACXa3VU (C_and_CPP)
文章代碼(AID): #1ACXa3VU (C_and_CPP)