1

我真的是 C 的新手,目前我正在尝试从包含名称列表的文件中读取,并将其导入到数组中。当前数组是 char[][] 类型,因为它将包含更多信息而不仅仅是名称,但本质上我希望 team[0][0] 成为我读入的第一个名称,team[1][0] 到是第二个,等等。我很确定名称的实际导入是正确的,但是我在存储这些数组时遇到了问题。

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);

从 main 函数调用它为teams = teamlist(argv[1], team); 但是当我尝试从程序中的其他地方引用数组时,例如printf(&team[0][0])它输出似乎是一个块中的所有名称......我做错了什么?

编辑:

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);

提示:它char array,不是string objectC 中的 ""

于 2012-09-15T07:27:30.160 回答