我真的是 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);
从主函数调用的 teams = teamlist(argv[1], team);
但是当我尝试从我的程序中的其他地方引用数组时,例如 printf(&team[0][0])
它输出的似乎是一个 block 中的所有名称......
我做错了什么?
编辑:
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
最佳答案
如果 team
声明为 char team[NUM_OF_TEAMS][LENGHT_OF_NAME]
那么它应该总是strcpy(&team[i],line);
提示:它是一个char数组,
不是C中的“string object
”
关于c - 不同程序中的相同阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12435320/