All pastes #32970 Raw Edit

Mine

public text v1 · immutable
#32970 ·published 2005-12-08 15:51 UTC
rendered paste body
// jan.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"

#include <math.h>
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct time{
int minuten;
double sekunden; 
};    



int main(void)
{
    FILE *eingabe; //Pointer an den der Dateiname zugewiesen wird
    FILE *ausgabe ; //Pointer für Textausgabe
    FILE *error;
    double trennzahl;
    double fuel1,fuel2;
    struct time drucktime1;
    struct time drucktime2;
    char *zeiger, i; //Zeiger zum Stringauslesen
    char name_eingabe[10]; //Dateiname der Eingegeben wird
    char * zeile;        
    int zaehler=0;
    int rpm1,rpm2,temp1,temp2,speed1,speed2;
    int richtig=0;  //Zähler für Maschine 1 zählt die Richtigkeit der einzelnen Datensätze und überprüft
    int richtig1=0; //Zähler für Maschine 2 zählt die Richtigkeit der einzelnen Datensätze und überprüft
    int wurdegedruckt=0; //Zähler um den Überschriftendruck nach 20 Zeilen zu wiederholen;
    
    
    //Aufruf aller Funktionen!
    int inumber(char temparray[]);  // Inumber überprüfung
    int pnumber(char temparray[]); // Pnumber überprüfung
    double rpm (double trennzahl); // RPM beider maschinen
    double speedm2 (double trennzahl); //speed maschine 2
    double fuelm2 (double trennzahl); // fuel maschine 2
    double tempm2 (double trennzahl); // temp maschine 2                                             
    time timem1 (double trennzahl);   // time maschine 1
    time timem2 (double trennzahl);  // time maschine 2
    void druck1(time drucktime1,int rpm1, int speed1, double fuel1, int temp1);  //Druck Funktion Maschine 1
    void druck2(time drucktime2, int rpm2 ,int speed2,double fuel2,int temp2);  //Druck Funktion Maschine 2
    void druckstern();                                                          // Fehler Print 
                                                                                                                                                                                                                                                                                                    
    printf ("Uebungsaufgabe 3: Datenfilter by Jan Knobloch SS 2005");
    printf ("\n\n");
    
    /* Abfrage des Dateinamens*/
    printf ("Geben den Dateinamen der zu oeffnenden Datei ein:");
    gets (name_eingabe);
    
    /*Öffnen der Dateien*/
    eingabe=fopen(name_eingabe, "r");
    ausgabe=fopen("errors.txt", "w");
    error=fopen("errors.txt", "w");
    
    printf("%s",eingabe);
    if (eingabe==NULL)
        {
            printf ("Datei ist leer/und oder nicht vorhanden!");
            getch();
            return 0;
        }    
       
    printf ("Datei wurde erfolgreich eingelesen vielen Dank!\n\n");
    getch();
    
//----------------------------------------------DRUCKEN DER KOPFZEILE DER AUSGABE----------------       
printf ("      Zeit   Umdrehungen   Geschwindigkeit   Verbrauch    Temperatur\n");                
printf ("     [m:s]         [1/s]            [km/h]   [l/100km]      [Grad C]\n");               
//-----------------------------------------------------------------------------------------------
    
    
    char trennzeichen;    
    while (!feof(eingabe))
        {
            fgets (zeile,100,eingabe);
            
            for(i=0; i<strlen(zeile); i++)     // Solange String nicht zuende ist soll zähler erhöht werden
            {
                if (zeile[i]=='$')             // wenn trennzeichen Dollar gefunden wird wird trennzeichen auf Dollar gesetzt
                {
                    trennzeichen='$';
                    break;
                
                }
                
                if (zeile[i]==',')            // wenn trennzeichen Komma gefunden wird wird trennzeichen auf Komma gesetzt
                {
                    trennzeichen=',';
                    break;
                }    
            
            }    
            
			
            char temparray[100];             //Temparray zum ablegen von Teilstrings
            int tempzaehler=0;              // Zähler auf null
            int data=0;                     // Stelle des Datensatzes auf null
            richtig=0;                      // Rücksetzn von richtig                      
            richtig1=0;                     //Rücksetzn von richtig2
			zeile = strtok(zeile,"\n");

            for(i=0; i<=strlen(zeile); i++)   // Solange String nicht zuende ist soll zähler erhöht werden
            {
                if (zeile[i]!=trennzeichen && zeile[i]!= '\0') //Wenn zeichen im String nicht Trennzeichen und nicht Absatz
                {
                    temparray[tempzaehler]=zeile[i]; // Dann wird string in Teilstring kopiert
                    tempzaehler++;
                }    
            
            
            
                 else                                                    // Ansonsten!
                {
                  temparray[tempzaehler]='\0';    //Wird ein Stringende eingebaut
                  tempzaehler=0;                   //Tempzähler auf 0 gesetzt                                                                             
                  data++;                         // Erhöhung des Datensatzes zum fangen in der if Schleife!
            
                  if (trennzeichen==',')                             // Aufteilen nach Maschine 1 und 2 durch Trennzeichen erkennung
                  {
            
                               
                               switch (data){                                     // Datensatz 1 von Trennzeichen Komma wird bearbeitet
                                 case 1:
                                 //TIME    
                                 trennzahl=atof(temparray);                       //umwandlung des Strings in eine Double Zahl
                                 richtig=(richtig+pnumber(temparray));            // Zähler zur endüberprüfung ob Zeile korrekt eingelesen wurde wird erhöht
                                 drucktime1=timem1(trennzahl);                         // Umrechnung der Zahl mittels ihrer Funktion
                                 break;   
                               
                                 case 2:                                     // Datensatz 2 von Trennzeichen Komma wird bearbeitet
                                 //RPM  
                                 trennzahl=atof(temparray);                       //umwandlung des Strings in eine Double Zahl
                                 rpm1=(int)(rpm(trennzahl));                    // Umrechnung mittels ihrer Funktion 
                                 richtig=(richtig+inumber(temparray));            // Zähler zur endüberprüfung ob Zeile korrekt eingelesen wurde wird erhöht
                                 break;
                               
                                 case 3:                                     // Datensatz 3 von Trennzeichen Komma wird bearbeitet
                                 //SPEED      
                                 trennzahl=atof(temparray);                        //umwandlung des Strings in eine Double Zahl
                                 richtig=(richtig+inumber(temparray));             // Zähler zur endüberprüfung ob Zeile korrekt eingelesen wurde wird erhöht
                                 speed1=((int)(trennzahl));                 // Umrechnung mittels ihrer Funktion 
                                 break;