[問題] 找不出問題...
以下是一段小程式,主要的流程是這樣的:
程式執行之後,會一行一行讀入某個檔案的內容,
一開始都是一個數字,比如說"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
06/12 18:08, 1F
※ 編輯: subeyes 來自: 203.70.108.75 (06/13 09:21)
→
06/13 09:22, , 2F
06/13 09:22, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章