Announcement

Collapse
No announcement yet.

Funktionswerte formatiert in Textdatei schreiben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Funktionswerte formatiert in Textdatei schreiben

    Hallo....
    ich habe ein Programm, mit dem ich Funktionswerte in eine Textdatei schreibe.

    Leider komm ich bei der Formatierung gar nicht weiter:

    i + 1. Datensatz: i x y a

    wobei der 1. Datensatz den Definitionsbereich xvon xbis beinhalten soll

    Code:
    FILE *fp;
                    char name[40];
                    printf("Dateiname:");scanf("%s",name);
            fp = fopen(name,"w+");
           
            if(fp==NULL) {
                    printf("Error: Dateieroeffnung");
                    return 0;
            }
    
            for( x=0.1; x < 0.2; x += 0.003) {
                    y = 100-(x/0.002);
                    a = fabs((Summe/n)-y);
                    printf("%20.3f %16.3f %20.3f\n", x, y, a);
                    fprintf(fp, "%20.3f %16.3f %20.3f\n", x, y, a);
            }
    
            fclose (fp);
            return 0;
    }
    kann mir bitte jemand weiterhelfen?

  • #2
    Also bei mir funktioniert das. Die Formatierung ist tiptop, kannst du deinen Problem etwas näher beschreiben ???

    Comment


    • #3
      also bis jetzt sieht die txt-datei ja so aus:
      Code:
      0.100           50.000               24.750
      0.103           48.500               23.250
      0.106           47.000               21.750
      aber die Aufgabenstellung ist ja:

      i + 1. Datensatz: i x y a

      wobei der 1. Datensatz den Definitionsbereich xvon xbis Schrittweite beinhalten soll

      also müsste die txt-datei doch so aussehen:

      Code:
      0. Definitionsbereich: x=0.1; x < 0.2; x += 0.003
      1. 0.100           50.000               24.750
      2. 0.103           48.500               23.250
      3. 0.106           47.000               21.750
      ...usw
      oder hab ich das falsch verstanden?

      Comment


      • #4
        Achso ist das gemeint ^^ sry ich hatte es erst falsch verstanden ^^

        dann müsste der Code so aussehen ^^

        Code:
        //---------------------------------------------------------------------------
        #include <vcl.h>
        #pragma hdrstop
        #include <stdio.h>
        #include <conio.h>
        #include <math.h>
        #include <stdlib.h>
        //---------------------------------------------------------------------------
        
        #pragma argsused
        int main(int argc, char* argv[])
        {
        double x, y, a;
                double Summe = 0, n = 0;
                printf("%50s\n\n", "ROCKWELL-HAERTEMESSUNG");
                printf("%55s\n\n", "Tabelle der Fkt. f(x)=100-(x/0.002)");
                printf("%49s\n\n", "x = Eindringtiefe in mm");
                printf("%50s\n\n", "f(x) = Rockwellhaerte HRC");
        
                for( x=0.1; x < 0.2; x += 0.003, n++ ) {
                        y = 100-(x/0.002);
                        Summe += y;
                }
        
                printf("                          Mittelwert: %.3f\n", Summe/n );
                printf("%18s%18s%22s\n", "x", "f(x)", "Abstand");
        
                FILE *fp;
        		char name[40];
        		printf("Dateiname:");scanf("%s",name);
                fp = fopen(name,"w+");
        
                if(fp==NULL) {
                        printf("Error: Dateieroeffnung");
                        return 0;
                }
        
                printf("0. Definitionsbereich: x=0.1; x < 0.2; x += 0.003\n");            
                fprintf(fp, "0. Definitionsbereich: x=0.1; x < 0.2; x += 0.003\n");    //Einzelne Zeile in die Datei schreiben ^^
        
                for( x=0.1; x < 0.2; x += 0.003) {
                        y = 100-(x/0.002);
                        a = fabs((Summe/n)-y);
                        printf("%20.3f %16.3f %20.3f\n", x, y, a);
                        fprintf(fp, "%20.3f %16.3f %20.3f\n", x, y, a);
                }
        
                fclose (fp);
                return 0;
        }
        //---------------------------------------------------------------------------
        Ich hoffe ich habe es diesmal richtig verstanden und konnte dir etwas behilflich sein ^^ Das mit der nummerierung habe ich in mom noch nicht ganz fertig, werde dir aber später noch dazu Posten ^^

        gruß
        guenter67
        Zuletzt editiert von guenter67; 27.06.2007, 00:36.

        Comment


        • #5
          hi,
          also ich habe das mit der nummerierung auch schon, aber es funktioniert nicht so wie du es möchtest

          Es sieht folgendermaßen aus:
          0. Definitionsbereich: x=0.1; x < 0.2; x += 0.003
          1.00000 0.100 50.000 24.750
          2.00000 0.103 48.500 23.250
          3.00000 0.106 47.000 21.750
          ...usw
          Bin aber noch dabei es zulösen

          gruß
          guenter67

          Comment


          • #6
            habe jetzt die richtige Lösung von nem Kumpel:

            Code:
            FILE *fp;
            		char name[40];
            		printf("Gib den Dateinamen ein: ");scanf("%s",name);
                    fp = fopen(name,"w+");
                    if(fp==NULL)
                    {
                            printf("Error: Dateieroeffnung");
                            return 0;
                    }
                    x=.1;
                    printf("\n\n%2s%20s%18s%22s\n\n", "Nr", "x", "f(x)", "Abstand");
                    fprintf(fp, " 0. Definitionsbereich: x=0.1; x < 0.2; x += 0.003\n");
                    do
                    {
                            Nummer++;
                            y = 100-(x/0.002);
                            a = fabs((Summe/n)-y);
                            printf("%2d. %20.3f %16.3f %20.3f\n", Nummer, x, y, a);         
                            fprintf(fp,"%2d. %20.3f %16.3f %20.3f\n", Nummer, x, y, a);
                            x=x+.003;
                    }
                    while (x<.2);
                    fclose (fp);
                    printf("\n\n");
                    system("pause");
                    return 0;
            }
            trotzdem DANKE für deine Hilfe!
            Grüße

            Comment


            • #7
              wie hat er denn die nummerierung gelöst??? Kannst du mir das noch verraten???

              Comment

              Working...
              X