我正在寫一個C代碼來逐行讀取包含字母,CR,LF,'\ 0'的行。以下是我附帶的代碼示例。我只想將每行的字母存儲到數組中,以便數組中的行數等於文件中行的數量,並且列的長度應該是變化的(取決於第i行中的字符數)。不同長度的字符串數組
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *buffer[100];
char temp[128];
int c,i=0,j=0;
int pos=0;
FILE *file;
file = fopen("input", "r");
if (file) {
while ((c = getc(file)) != EOF){
if ((c>=65 && c<=90) || (c>=97 && c<=122))
temp[pos++]=c;
else if(pos>1) {
temp[pos]='\0';
buffer[i]=temp;
printf ("%s\n",temp);
i++;
pos=0;
}
}
}
fclose(file);
while (j<i){
printf("%s\n",buffer[j]);
j++;
}
}
如果我運行我的上面的代碼,我所有的緩衝區[j]包含相同的字符串。 任何人都可以幫助我找出代碼中的錯誤。
**如果你問它,**調試器**會急切地執行任務*真正好*。除此之外,問問自己:「每當我進入一個新字符串時,我在那個指針數組中存儲了什麼?它是否是同一個緩衝區地址(temp)一遍又一遍?」 – WhozCraig 2013-04-04 12:49:35