私は本当にCに慣れていません。現在、名前のリストを含むファイルから読み込んで、それを配列にインポートしようとしています。現在の配列は char[][] 型です。これは、名前だけでなく、より多くの情報が含まれるためです。名前の実際のインポートは正しいと確信していますが、これらの配列の保存に問題があります。
FILE *teamfile;
teamfile = fopen(file, "r");
char line[MAXLENGTH+1];
int i = 0;
while( fgets(line, sizeof line, teamfile) != NULL )
{
trim_line(line);
strcpy(&team[i][NAME],line);
i++;
}
fclose(teamfile);
メイン関数から次のように呼び出されteams = teamlist(argv[1], team);
ますが、プログラムの他の場所から配列を参照しようとすると、たとえばprintf(&team[0][0])
、1 つのブロック内のすべての名前のように見えるものが出力されます...何が間違っていますか?
編集:
static void trim_line(char line[])
{
int i = 0;
// LOOP UNTIL WE REACH THE END OF line
while(line[i] != '\0')
{
// CHECK FOR CARRIAGE-RETURN OR NEWLINE
if( line[i] == '\r' || line[i] == '\n' )
{
line[i] = '\0'; // overwrite with nul-byte
break; // leave the loop early
}
i = i+1; // iterate through character array
}
}
これまで助けてくれてありがとう!:D