我一直試圖將此文本文件讀入結構數組中。這裏是幾行文字。將文本文件讀入結構數組C
A|Boston Red Sox|Fenway Park|4 Yawkey Way|Boston|MA|02215|(617) 267-9440|redsox.com
N|St. Louis Cardinals|Busch Stadium|700 Clark Street|St. Louis|MO|63102|(314) 345-9600|cardinals.com
這裏是結構數組。我修改了文本文件,只包含聯盟和團隊名稱,以便更容易地測試更改。
#define LEN_LINE 80
#define LEN_NAME 30
#define MAX_LINES 60
#define LEAGUE_NAME 5
typedef struct
{
char leagueName[LEAGUE_NAME + 1];
char teamName[LEN_NAME + 1];
} team_t;
這裏是哪裏出了問題lies.I試圖執行函數strncpy()雖然是一個初學者,已經很難試圖在這種情況下正確使用該功能。
FILE * filePtr;
int index, count;
char line[LEN_LINE + 1];
team_t teams[MAX_LINES];
filePtr = fopen("MLBteams.txt", "r");
if(filePtr == NULL)
{
printf("Unable to open file.\n");
}
else
{
index = 0;
while(index<MAX_LINES && fgets(line, LEN_LINE, filePtr))
{
if(2 == sscanf(line,"%s %s", teams[index].leagueName, teams[index].teamName)
)
{
index++;
}
}
fclose(filePtr);
我通過其他線程看,雖然他們只是困惑我。
的問題是,我需要在這些字裏行間的信息|從文本文件轉換爲獨立的結構成員。我的代碼的問題是它只會讀取這些行|例如,如果我想將Boston Red Sox閱讀成團隊[index] .teamName,它將只存儲波士頓。也感謝您的鏈接,我會嘗試分解代碼,看看它是否對我有幫助。 –
這就像是一個特殊的說明符,它會讀取字符,直到遇到|。由於電話號碼/郵政編碼等信息不變,所以我可以將它們讀作字符串。無論如何,非常感謝您的幫助。 –
在增加#define LEN_LINE的長度後,它完美地工作。謝謝 –