Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Aufgabe!!! Datei Auslesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] > 3 <
020
14.05.2004, 19:06 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ich versteh dein problem nicht...
was geht denn jetzt nun nicht... ausgabe auf dem monitor ist doch genauso wie in ne datei nur halt mit printf statt mit fprintf...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
14.05.2004, 19:45 Uhr
~hilfesucher
Gast


ja eine ausgabe is ja schon drinn aber halt nur die umgerechneten Werte

Ich brauch die Ausgabe aber am Schluss mit den aus der Datei Ausgelesenen Werte und daneben die der Umgerechneten einmal Monitor und dann in der Datei wo ich die Werte ausgelesen habe oder wegen mir in einer neuen .... ach ja sie müssen dann alle geordnet sein
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
14.05.2004, 19:57 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


naja was die verschiedenen "temperaturen" gemeinsam haben ist, das sie alle monton steigend sind... das heisst es ist egal ob du nach Kelvin, Grad Celsius, oder Fahrendheit sortierst... die reihenfolge ist immer die gleiche...

du hast die werte doch schon alle im feld values drin stehen... nachdem du über values ein BubbleSort gejagt hast stehen die werte doch sortiert drin...

musst du jetzt nur noch ausgeben
ich versteh dein problem noch immer nicht genau...

so ballerst du es in die datei

C++:
    for(i=0;i<20;i++)fprintf(fp2,"%f\n",values[ i ]);    



ausgabe auf dem bildschirm ist genauso...

C++:
    for(i=0;i<20;i++)printf("%f\n",values[ i ]);    



wenn du jetzt nur noch willst das der die anderen masseinheiten auch mit ausgibt musst du es doch nur umrechenen...

angenommen in values sind die werte in Kelvin gespeichert...
dan so

C++:
    for(i=0;i<20;i++)printf("%f\t%f\t%f\n",values[ i ],values[i]-273.16,(values[i]-273.16)*1.8+32);    


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 14.05.2004 um 19:58 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
15.05.2004, 02:15 Uhr
~hilfesucher
Gast


Alles klar ... obwohl du mich nicht verstanden hattest hast du mir genau die richtige Lösung gegeben ....

Ich veruche es nochmal zu erklären:
Wie du siehst hatte ich im nun mal wieder alten Code die berechnung ja am anfang ich hatte also das Problem das ich immer nur die berechneten Werte ausgeben konnte da die die ausgelesen wurde gaaaanz am anfang bereits überschrieben waren. Und ich bin nich auf die Idee gekommen die zur ausgabe einfach wieder umzurechnen habe es nun so gemacht das ich die Rechnung ansich komplett rausgenommen habe und nur values[i], (values[i]-32)/1,8 ausgebe was natürlich wie ich dann fesststellen musste einfacher ist. Leider auch leichter aber ich bin ja noch dumm was das betrifft. (werds vermutlich auch bleiben is aber net schlimm)

Also dann nomma viellen dank.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
024
15.05.2004, 11:15 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wenn du es halbwegs vernünftig machen willst würd ich mir einfach ein paar routinen dafür schreiben die du dann nur im hauptprogramm aufrufst
mal so ins forum gehackt sind bestimmt noch fehlerchen drin...

C++:
void swap (double *x,double *y);
void bubbleSort(double *a,int n);
int werte_einlesen(char* filename,double* values, int n);
void werte_ausgeben(FILE *fp,double* values, int n);
double Kelvin2Celsius(double t);
double Celsius2Kelvin(double t);
double Kelvin2Fahrenheit(double t);
double Fahrenheit2Kelvin(double t);
double Celsius2Fahrenheit(double t);
double Fahrenheit2Celsius(double t);

int main(){
double values[20];
int i;
FILE* fp;
fp=fopen("eingabe.txt","r");                        //öffnen der Datei mit lese berechtigung
if(!werte_einlesen("eingabe.txt",values,n)return 0;
bubbleSort(values,20);

//in datei schreiben
fp=fopen("ausgabe.txt","w");
void werte_ausgeben(fp,values,n);
fclose(fp);                                        //ausgabe Datei schliessen

//auf dem bildschirm ausgeben
void werte_ausgeben(stdout,values,n);


return 0;
}



void swap(double *x,double *y){double h=*x;*x=*y;*y=h;}

void bubbleSort(double *a,int n){
    for(int j=n-1;j>0;--j)
        for(int i=0;i<j;++i)
            if(a[ i ]>a[i+1])swap(&a[ i ],&a[i+1]);
        
}

int werte_einlesen(char* filename,double* values, int n){
int i;
FILE* fp;
if(!(fp=fopen(filename,"r"))return 0;
for(i=0;i<n;++i){
    fscanf(fp,"%lf\r\n",&values[ i ]);        //auslesen der eingegebenen Werte
    values [ i ]+=273.16;
}
fclose(fp);          
return 1;
}

void werte_ausgeben(FILE *fp,double* values, int n){

int i;
fprintf(fp,"Kelvin\tCelsius\tFahrenheit\n");
for(i=0;i<n;i++)fprintf(fp,"%f\t%f\t%f\n",values[ i ],Kelvin2Celsius(values[i],Kelvin2Fahrenheit(values[i]));    

}

double Kelvin2Celsius(double t){return t+273.16;}
double Celsius2Kelvin(double t){return t-273.16;}
double Kelvin2Fahrenheit(double t){return Celsius2Fahrenheit(Kelvin2Celsius(t));}
double Fahrenheit2Kelvin(double t){return Celsius2Kelvin(Fahrenheit2Celsius(t));}
double Celsius2Fahrenheit(double t){return 1.8*t+32;}
double Fahrenheit2Celsius(double t){return (t-32)/1.8;}


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 15.05.2004 um 11:16 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
15.05.2004, 15:21 Uhr
~hilfesucher
Gast


also wie gesagt ich habs hinbekommen mit eurer mehr Deiner Hilfe (nix gegen andere sag) und mir reichts zum Glück so wie ichs jetzt habe und das geht auch ganz gut bin sehr zufrieden:


C++:
#include <stdio.h>
#define MAX 450

void swap (double *x,double *y);
void bubbleSort(double *a,int n);

int main(){
double values[20];
int i;
FILE* fp;
fp=fopen("werte.txt","r");                                                    

if (!fp) { printf("Fehler beim Öffnen der Datei! (Lesen)");                    
return 0; }

for(i=0;i<20;++i){                                                            
    fscanf(fp,"%lf\r\n",&values[ i ]);                                        
  }
fclose(fp);                                                                    

bubbleSort(values,20);                                                        
fp=fopen("werteausgabe.txt","w");                                                    

if (!fp) { printf("Fehler beim Oeffnen der Datei! (Schreiben)\n");            
return 0; }

fprintf(fp,"Fahrenheid\tCelsius\t\n");                                        
for(i=0;i<20;i++)fprintf(fp,"%f\t%f\n",values[ i ],(values[ i ]-32)/1.8);    
fclose(fp);                                                                    
                                    
printf("Fahrenheid\tCelsius\n");                                    
for(i=0;i<20;i++)printf("%f\t%f\n",values[ i ],(values[ i ]-32)/1.8);        
return 0;
}


void swap(double *x,double *y){double h=*x;*x=*y;*y=h;}                    

void bubbleSort(double *a,int n){
    for(int j=n-1;j>0;--j)                                    
        for(int i=0;i<j;++i)                                
            if(a[ i ]>a[i+1])swap(&a[ i ],&a[i+1]);                            
        
}



Ich finde fast schon das das viel zu gut aussieht für sonnen N00b wie mich hoffe mein Prof. denkt das nich und ich hoffe nur ich kann das alles auch so erkären wie ich denke das es richtig ist *g* ... muss aber sagen ich habe glaub schon einiges dazu gelernt.

In diesem Sinne ich denke mal ich werde mich hin und wieder imma ma wieder mit sowas beschäftigen kleiner Progs schreiben zum fit bleiben und euch hier nerfen *FG*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] > 3 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: