我正在尝试阅读以下文本文件:
Parameters.txt:
{{1}}
并将每个值保存为变量(8000,1,100,“FCFS”,“First”,“OFF”,“OFF”)。我开始只是读取memSize(8000)的值。
我有以下C代码:
{{1}}
然而,我从中得到了分段错误。我调试了代码以将seg故障缩小到fscanf()行。
尝试阅读此文件时,我是否过于复杂?
答案 0 :(得分:0)
FILE *parameters;
parameters=(fopen("./Parameters.txt","r"));
if(parameters==NULL){
printf("Error reading file.");
exit(1);
}
char *strTemp = malloc(80);
int memSize, numCores, quantum, swapTime;
char *schedule = malloc(80), memAlloc = malloc(80);
fscanf(parameters, "%s %s %d", strTemp, strTemp, &memorize);
在您的代码中,strTemp
,schedule
和memAlloc
只不过是指向char的指针。但是,要保存字符串,需要一块内存,因此必须为指针分配一些内存。
fscanf(parameters, " %*[^:] :%d", &memorize);
以避免不必要地使用strTemp
。