(C++) In Logdatei schreiben

Nibel

treuer Stammgast
(C++) In Logdatei schreiben [erledigt]

Hey Leute,
Ich will mir in paar Muskeln antrainieren :D und habe dafür ein Programm in C++ angefertigt. Sonst vergess ich das immer. Das Programm soll mir die nächsten Übungen sagen und ich kann eingeben, wie viele ich davon gemacht habe. Im Moment habe ich das Hauptprogramm soweit fertig, jetzt würde ich das alles gern in eine txt-Log Datei schreiben. Ich weiß nicht wo mein Fehler liegt könnt ihr ihn entdecken und mich verbessern bitte :) Die Log-Funktion soll durch die Funktion write gemacht werden. Tut mir Leid für manche holprige Sachen im Code, lerne es noch... Und "trainartt" ist kein Rechtschreibfehler!

Falls es jemanden interessiert hier ist der fertige Code

verborgener Text:
Code:
#include <math.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <time.h>
using namespace std;

/* trainart: 1=GeraderCrunch;2=VarGeraderCrunch;3=TwistedCrunch;4=seitlicherCrunch;5=SeitlicherHaltestütz;6=Rückenübung;7=Liegestütz*/
int trainart = 1;
int trainmany; 
int trainrounds = 1;
int trainstart = 1;
char *trainartt;

void write (){

     FILE *writer;

      char ctrainrounds[10];
      char ctrainmany[10];
     

     writer = fopen("log.txt", "at");
     if ( trainstart == 1 ){
          fputs("\n\n\n---------------------- Next Training ----------------------\n\n",writer);
          trainstart += 1;
          }
     if ( trainart == 1 ) {
          fputs("\n\n-RUNDE- ", writer);
          sprintf(ctrainrounds, "%d", trainrounds);
          fputs(ctrainrounds, writer);
          }
          
          

     fputs(trainartt, writer);
     sprintf(ctrainmany, "%d%", trainmany);
     fputs(ctrainmany, writer);

     fclose(writer);
     
     
     }
     

int main (){

int again = 1;
clock_t start,wait;



printf("\nViel Spass beim Ueben!\n\n");
printf("Fangen wir an!\n\n");

do {
    if ( trainrounds == 1) {
         printf("Zum Aufwärmen nicht so viele!\n\n\n");
         }
    else {
         printf("Weiter!!! \a\a\a\a\a\a\a \n\n");
         printf("Runde %d!\n\n\n",trainrounds);
         }
    do {
    
    switch (trainart) {
     case 1: trainartt = "\n\n\nGerader Crunch:\t";
             break;
     case 2: trainartt = "\n\nVariation des Geraden Crunches:\t";
             break;   
     case 3: trainartt = "\n\nTwisted Crunch:\t";
             break;
     case 4: trainartt = "\n\nSeitlicher Crunch:\t";
             break;
     case 5: trainartt = "\n\nSeitlicher Haltestütz:\t";
             break;
     case 6: trainartt = "\n\nRückenuebung:\t";
             break;
     case 7: trainartt = "\n\nLiegestütz:\t";
             break;
             }
     
    printf("%s",trainartt);
    cin >> trainmany;
    write();
    trainart +=1;
    } while ( trainart !=8 );
    
    
    
    
    trainrounds += 1;
    trainart=1;
    printf("\n\nSchon schlappmachen?");
    cin >> again;
    
    printf("\n\n2 Minuten Pause!\n\n");
    wait=120*CLOCKS_PER_SEC;
    start=clock();
    while(clock() < start+wait) {};
    
} while(again == 1);

}

verborgener Text:

siehe Anhang:
Außerdem wird noch ein Fehler in stdio.h angezeigt. Diese Stelle ist rot markiert:
_CRTIMP FILE* __cdecl __MINGW_NOTHROW fopen (const char*, const char*);

Fehler gelöst!


Ok die meisten Probleme sind jetzt gelöst hat einer nur ne gute Methode ohne viel Codeaufwand eine int in eine char umzuwandeln?

Mit
Code:
sprintf(zielchararray, "%d%", integer);
Ist das eigentlich ganz einfach...


Danke an ElSer mit dem Vorschlag für switch jetzt ist es übersichtlicher!


Tja irgendwann werd ich dann was im Kopf und am Körper haben :D
Vielen Dank!
Gruß Nibel

Kann geclosed werden...
 
Zuletzt bearbeitet:
Könntest Du noch ganz kurz sagen, was nicht funktioniert?

ansonsten bisher: return 0 bei einer void Funktion???

Ansonsten ein stilistischer Vorschlag. Wie ist Dein Verhältnis zum switch?
 
Achja return^^ Danke wollte das erst mit einer Funktion machen, habe mich dann aber für globale Variablen entschieden, das ist einfacher.

Switch steh ich ganz schlecht werd es mir aber heut abend mal genauer angucken...

Fehler stehen gleich im Startpost.
 
Zuletzt bearbeitet:
Oben