2016-04-05 12 views
-4
 #include<stdio.h> 
    #include<stdlib.h> 
    #include<io.h> 
    #include<conio.h> 

    extern _floatconvert; 
    #pragma extref _floatconvert 
     void main() 
     { 
      FILE *in,*out; 
      double f; 
      in = fopen("A.txt","r"); 
      out = fopen("S.txt","w"); 
      for (int i=0;i<18;i++) 
      { 
      for (int j=0;j<18;j++) 
      { 
       fscanf(in,"%.15lf",&f); 
       fprintf(stdout,"%.15lf",f); 
       getch(); 
       fprintf(out,"A=[%d][%d] = %lf ;",i,j,f); 
       } 
      } 
      fclose(in); 
      fclose(out); 
      getch(); 

      } 

Dosyadan okumak ve kodun belirttiği gibi değiştirerek diğerine kaydetmek istiyorum.Dosyadan çift değerlerin okunması çıkış s -0000.0000 değerini verir.

girdi dosyasıdır: Ben olsun

3.53448000000 -4.77154800002 1.76724000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 -4.77154800002 1.71775730005 0.00000000000 -8.58878640004 4.77154800002 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 1.76724000000 0.00000000000 7.06896000000 -4.77154800002 1.76724000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 -8.58878640004 4.77154800002 1.71775730005 0.00000000000 -8.58878640004 4.77154800002 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 4.77154800002 1.76724000000 0.00000000000 7.06896000000 -4.77154800002 1.76724000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 -8.58878640004 -4.77154800002 1.71775730005 0.00000000000 -8.58878640004 4.77154800002 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 4.77154800002 1.76724000000 0.00000000000 7.06896000000 -4.77154800002 1.76724000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 -8.58878640004 -4.77154800002 1.71775730005 0.00000000000 8.58878640004 4.77154800002 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 4.77154800002 1.76724000000 0.00000000000 7.06896000000 -4.77154800002 1.76724000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 8.58878640004 -4.77154800002 1.71775730005 0.00000000000 -8.58878640004 4.77154800002 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 4.77154800002 1.76724000000 0.00000000000 7.06896000000 4.77154800002 1.76724000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 -8.58878640004 -4.77154800002 1.71775730005 0.00000000000 -8.58878640004 4.77154800002 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 4.77154800002 1.76724000000 0.00000000000 7.06896000000 -4.77154800002 1.76724000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 -8.58878640004 -4.77154800002 1.71775730005 0.00000000000 -8.58878640004 4.77154800002 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 4.77154800002 1.76724000000 0.00000000000 7.06896000000 -4.77154800002 1.76724000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 -8.58878640004 -4.77154800002 1.71775730005 0.00000000000 4.77154800002 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 4.77154800002 1.76724000000 0.00000000000 7.06896000000 1.76724000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 0.00000000000 4.77154800002 1.76724000000 3.53448000000

çıktısı:

A=[0][0] = -0.000000 ;A=[0][1] = -0.000000 ;A=[0][2] = -0.000000 ;A=[0][3] = -0.000000 ;A=[0][4] = -0.000000 ;A=[0][5] = -0.000000 ;A=[0][6] = -0.000000 ;A=[0][7] = -0.000000 ;A=[0][8] = -0.000000 ;A=[0][9] = -0.000000 ;A=[0][10] = -0.000000 ;A=[0][11] = -0.000000 ;A=[0][12] = -0.000000 ;A=[0][13] = -0.000000 ;A=[0][14] = -0.000000 ;A=[0][15] = -0.000000 ;A=[0][16] = -0.000000 ;A=[0][17] = -0.000000 ;A=[1][0] = -0.000000 ;A=[1][1] = -0.000000 ;A=[1][2] = -0.000000 ;A=[1][3] = -0.000000 ;A=[1][4] = -0.000000 ;A=[1][5] = -0.000000 ;A=[1][6] = -0.000000 ;A=[1][7] = -0.000000 ;A=[1][8] = -0.000000 ;A=[1][9] = -0.000000 ;A=[1][10] = -0.000000 ;A=[1][11] = -0.000000 ;A=[1][12] = -0.000000 ;A=[1][13] = -0.000000 ;A=[1][14] = -0.000000 ;A=[1][15] = -0.000000 ;A=[1][16] = -0.000000 ;A=[1][17] = -0.000000 ;A=[2][0] = -0.000000 ;A=[2][1] = -0.000000 ;A=[2][2] = -0.000000 ;A=[2][3] = -0.000000 ;A=[2][4] = -0.000000 ;A=[2][5] = -0.000000 ;A=[2][6] = -0.000000 ;A=[2][7] = -0.000000 ;A=[2][8] = -0.000000 ;A=[2][9] = -0.000000 ;A=[2][10] = -0.000000 ;A=[2][11] = -0.000000 ;A=[2][12] = -0.000000 ;A=[2][13] = -0.000000 ;A=[2][14] = -0.000000 ;A=[2][15] = -0.000000 ;A=[2][16] = -0.000000 ;A=[2][17] = -0.000000 ;A=[3][0] = -0.000000 ;A=[3][1] = -0.000000 ;A=[3][2] = -0.000000 ;A=[3][3] = -0.000000 ;A=[3][4] = -0.000000 ;A=[3][5] = -0.000000 ;A=[3][6] = -0.000000 ;A=[3][7] = -0.000000 ;A=[3][8] = -0.000000 ;A=[3][9] = -0.000000 ;A=[3][10] = -0.000000 ;A=[3][11] = -0.000000 ;A=[3][12] = -0.000000 ;A=[3][13] = -0.000000 ;A=[3][14] = -0.000000 ;A=[3][15] = -0.000000 ;A=[3][16] = -0.000000 ;A=[3][17] = -0.000000 ;A=[4][0] = -0.000000 ;A=[4][1] = -0.000000 ;A=[4][2] = -0.000000 ;A=[4][3] = -0.000000 ;A=[4][4] = -0.000000 ;A=[4][5] = -0.000000 ;A=[4][6] = -0.000000 ;A=[4][7] = -0.000000 ;A=[4][8] = -0.000000 ;A=[4][9] = -0.000000 ;A=[4][10] = -0.000000 ;A=[4][11] = -0.000000 ;A=[4][12] = -0.000000 ;A=[4][13] = -0.000000 ;A=[4][14] = -0.000000 ;A=[4][15] = -0.000000 ;A=[4][16] = -0.000000 ;A=[4][17] = -0.000000 ;A=[5][0] = -0.000000 ;A=[5][1] = -0.000000 ;A=[5][2] = -0.000000 ;A=[5][3] = -0.000000 ;A=[5][4] = -0.000000 ;A=[5][5] = -0.000000 ;A=[5][6] = -0.000000 ;A=[5][7] = -0.000000 ;A=[5][8] = -0.000000 ;A=[5][9] = -0.000000 ;A=[5][10] = -0.000000 ;A=[5][11] = -0.000000 ;A=[5][12] = -0.000000 ;A=[5][13] = -0.000000 ;A=[5][14] = -0.000000 ;A=[5][15] = -0.000000 ;A=[5][16] = -0.000000 ;A=[5][17] = -0.000000 ;A=[6][0] = -0.000000 ;A=[6][1] = -0.000000 ;A=[6][2] = -0.000000 ;A=[6][3] = -0.000000 ;A=[6][4] = -0.000000 ;A=[6][5] = -0.000000 ;A=[6][6] = -0.000000 ;A=[6][7] = -0.000000 ;A=[6][8] = -0.000000 ;A=[6][9] = -0.000000 ;A=[6][10] = -0.000000 ;A=[6][11] = -0.000000 ;A=[6][12] = -0.000000 ;A=[6][13] = -0.000000 ;A=[6][14] = -0.000000 ;A=[6][15] = -0.000000 ;A=[6][16] = -0.000000 ;A=[6][17] = -0.000000 ;A=[7][0] = -0.000000 ;A=[7][1] = -0.000000 ;A=[7][2] = -0.000000 ;A=[7][3] = -0.000000 ;A=[7][4] = -0.000000 ;A=[7][5] = -0.000000 ;A=[7][6] = -0.000000 ;A=[7][7] = -0.000000 ;A=[7][8] = -0.000000 ;A=[7][9] = -0.000000 ;A=[7][10] = -0.000000 ;A=[7][11] = -0.000000 ;A=[7][12] = -0.000000 ;A=[7][13] = -0.000000 ;A=[7][14] = -0.000000 ;A=[7][15] = -0.000000 ;A=[7][16] = -0.000000 ;A=[7][17] = -0.000000 ; ... .. .

Tüm sıfırlar. Niye ya?

+2

Lütfen Sorun hala sunulduğu minimal için çıkışını (yineleme sayısı) azaltır. –

+2

Hata denetimi tam olarak etkilenmedi. Scanf() tarafından döndürülen değeri veya çıkışı kontrol etmiyorsunuz. Ayrıca, ne @ GeorgeSovetov diyor. Neden giriş dosyasından sadece bir değer okuyamıyorsunuz ve önce onu çalıştırıyorsunuz? Neden tüm bu gunge? –

+0

Ayrıca bir şeyler deneyin. % Lf yerine% lf –

cevap

0

Orada size yardımcı olmak için scanf hakkında yeterli bilgim yok, ama burada istediğiniz şeyi yapan akışları kullanan eşdeğer bir C++ programı.

#include<fstream> 

int main() { 
    std::ifstream in("A.txt"); 
    std::ofstream out("S.txt"); 

    if (!in) { /* Error opening in */ } 
    if (!out) { /* Error opening out */ } 

    out.setf(std::ios::fixed); 

    for (int r = 0; r < 18; r++) { 
     for (int c = 0; c < 18; c++) { 
      double f; 
      in >> f; 
      out << "A=[" << r << "][" << c << "] = " << f << " ;"; 
     } 
    } 
} 
+0

'çift f = 0.0; eğer (in f) f <{i} {out <<" A = ["/*...*/;} else {/ * değer okuma hatası * /} ' – Pixelchemist

+0

@Pixelchemist Daha da iyisi, ama bu örnek için bu hata denetimi seviyesini düşürmeye karar verdim: –

3

Sen fscanf işlevi yanlış format belirtici veriyoruz. Tarama sırasında hassasiyet belirtmeniz gerekmez, bu yüzden fscanf(in,"%.15lf",&f); yazmak yerine fscanf(in,"%lf",&f);

+0

Başarılı bir taramanın yapılmasının sağlanması için' fscanf() == 1' sonucunun kontrol edilmesi tavsiye edilir. – chux

+0

Teşekkürler! Benim kötü, aptal hatam. –

İlgili konular