我对C语言非常陌生,目前我正在尝试从一个包含名称列表的文件中读入,并将其导入到一个数组中。当前数组的类型是char,因为它将包含比名称更多的信息,但本质上我希望team是我读取的第一个名称,team1是第二个名称,依此类推。我非常确定名称的实际导入是正确的,但我在存储这些数组时遇到了问题。
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]),它输出的似乎是一个块中的所有名称……我做错了什么?
编辑:
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
发布于 2012-09-15 15:27:30
如果team声明为char team[NUM_OF_TEAMS][LENGHT_OF_NAME]
则应始终为strcpy(&team[i],line);
提示:它不是C中的"string object“,而是一个char array,
https://stackoverflow.com/questions/12435320
复制相似问题