啊,谢谢!说得通。刚刚发出了大小为 MAX_COMMAND_LENGTH + 1 的命令。
我正在尝试使用 fscanf 在一个循环中两次不同地读取同一个文件,但我遇到了段错误。这个想法是文件将被格式化,以便它在每行的开头都有一个命令,后面是命令的参数。
char* command; //Changed to char command[MAX_COMMAND_LENGTH + 1]
while(fscanf(file, "%s", command) == 1)
{
if (strcmp("CMD1", command) == 0)
{
int index, exp, coeff;
fscanf(file, "%d %d %d", &index, &exp, &coeff);
}
else if (strcmp("CMD2", command) == 0)
{
int num;
fscanf(file, "%d", &num);
}
}
最佳答案
您需要为命令
分配内存。例如:
command = (char *)malloc(1024 * sizeof(char));
将为 1024 个字符分配足够的内存。
记得在完成后free(command)
。
关于c - 循环内的 fscanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5413756/