1

私は本当に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

4

1 に答える 1

1

teamとして宣言されている場合char team[NUM_OF_TEAMS][LENGHT_OF_NAME]

それからそれは常にあるべきですstrcpy(&team[i],line);

ヒント: Cchar array,では " " ではありませんstring object

于 2012-09-15T07:27:30.160 に答える