Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
2935
Tıklama
0
Öne Çıkarma
C ile txt dosyasından float ve double veri okuma !!!!
H
20 yıl
Yüzbaşı
Konu Sahibi

Bir text dosyadaki verileri C'de işlemem gerekiyor. Bu amaçla dosyayı açıp değişkenleri okuduğum zaman değişkenin noktadan sonraki kısmında sorun yaşıyorum. Örneğin float verileri içeren dosyada

7992.504285 2.988834 9206.547066 verileri varken değişkenlerde
7992.504395 2.988834 9206.546875 verieri oluyor.

Float tipinin duyarlılığının yetmediğini düşünerek bu kez verileri double formatında dosyaya yazdım. Bu kez double formatında okuduğum veriler tamamen anlamsızdı.

Program kodunu aşağıda veriyorum. Özellikle double tipi ile ilgili sorunun nerden kaynaklandığı konusunda yardımcı olursanız sevinirim.

Not: Veriler dosyada aralarında bir boşluk karakteri ile bulunuyor. "7992.504285 2.988834 9206.547066 1591.434319" , "4.801184e+002 4.357349e+003 5.415224e+003 2.415224e+003" gibi


 
#include <stdio.h>
#include <string.h>
#include <conio.h>

const char directory[]= "C:\\MATLAB6p5\\work\\flicker_ohuchi\\";

int main()
{
double d1,d2,d3;
float f1,f2,f3;
char inf1[70],inf2[70];

FILE *infile;

strcpy(inf1,directory);
strcpy(inf2,directory);
strcat(inf1,"input_double.txt"); // double data
strcat(inf2,"input_float.txt"); // float data

infile=fopen(inf1,"rt");
fscanf(infile,"%e %e %e",&d1,&d2,&d3); // read double data
printf("%e %e %e\n",d1,d2,d3); // display them

infile=fopen(inf2,"rt");
fscanf(infile,"%f %f %f",&f1,&f2,&f3); // read float data
printf("%f %f %f",f1,f2,f3); // display them

getch();

fclose(infile);
return 0;
}



Edit: Verilerin dosyada bulunma biçimi hk.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi HYP -- 16 Ekim 2005, 0:30:04 >