我尝试读取文本文件中的differents值: 这是我的文件:
4,3
30.0
20.0
1.0
我的输出适用于第一行,通过一个fscanf调用,我可以分别获得4和3。但是然后当我想再次调用fscanf以获取双精度时,它返回0但我想要30.0!
我的代码在这里:
int* read_size(FILE* f) {
int* taille;
fscanf(f, "%d,%d", &taille[0], &taille[1]);
return taille;
}
int read_int(FILE* f) {
int i;
fscanf(f, "%d", &i);
return i;
}
double read_double(FILE* f) {
double d;
fscanf(f, "%lf", &d);
return d;
}
FILE* getFile() {
char* fileName = "1.conf";
FILE* f = fopen(fileName, "r");
return f;
}
int main( int argc, char *argv[]) {
FILE* f = getFile();
int* taille = read_size(f);
printf("maitre : taille[0] : %d, taille[1] : %d\n", taille[0], taille[1]);
double temperature = read_double(f);
printf("maitre : lecture de temperature %2f\n", temperature);
}
答案 0 :(得分:0)
int* taille;
保留用于指针的空间,但不保留实际值。
读入指针任意指向的值会产生不确定的行为。
解决此问题的最简单方法是改为编写static int taille[2]
。
然后其余的应该工作正常。