[c++] проблема с вводом

vlfdimir58

Я, конечно, извиняюсь за беспокойство, но:

#include <stdio.h>
int main {
FILE *IN = fopen("dat.dat", "r");
double a,b,c;
fscanf(IN, "%d %d %d", &a, &b, &c);
printf("\n %d %d %d\n", a, b, c);
fclose(IN);
return 0;
}


откомпилированный g++ -lm test.cpp
с входным файлом dat.dat

1 1 1


выдает вот это:
1 134513437 1

vlfdimir58

если подать 0 0 0, выход тот же...

kokoc88

%d замени на %f

vlfdimir58

0.000000 8.925049 0.000000

Chupa

> double
> %d
для начала неплохо бы здесь определиться
double - %lf
%d - int

kokoc88

Значит, на %lf, как написали. Просто по %d fscanf будет считать double* как int*.

vlfdimir58

упс.
спасибо
Оставить комментарий
Имя или ник:
Комментарий: