C - Funktionsausgabe in TXT speichern

Neue Frage »

Auf diesen Beitrag antworten »
LightSideOfLife C - Funktionsausgabe in TXT speichern

Hallo Leute!
Für mein SoftwareTechnik Praktikum sollte ich einen kleinen Geldautomaten programmieren.
Wir sollten den Automat vor allem in verschiedene Funktionen unterteilen.
Ich habe die Aufgabe bereits gelöst und mein Code sieht nun so aus:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
#include <stdio.h>

int schein[7] = {500,200,100,50,20,10,5};
int scheinanzahl[7] = {0,0,0,0,0,0,0};
FILE *Datei;

int BetragEingeben(){
	int eingabe;
		do{
			printf("Wie viel Geld möchten Sie abheben? (5er Schritte) ");
			scanf("%d", &eingabe);
			if (eingabe % 5 != 0)
				printf("\nUngültige Eingabe! \n\n");
		}
		while (eingabe % 5 != 0);
	return eingabe;
}

int* AnzahlBerechnen(int rest, int i){
		if (rest > 0){
			if (rest >= schein[i]){
				scheinanzahl[i] = rest/schein[i];
				rest = rest % schein[i];}
			AnzahlBerechnen(rest, i+1);
		}
			return scheinanzahl;
}


int Ausgabe(int schein[], int scheinanzahl[]){
	int i;
	printf("\nDer Automat drückt folgende Scheine raus: \n\n Anzahl\t |     Schein\n");
	printf("-----------------------\n");
	for (i = 0; i < 7; i++){
		/*if (scheinanzahl[i] != 0){*/
		printf("   %d \t |\t%d\n",scheinanzahl[i], schein[i]);
		/*}*/
		
	}
}

void Speichern(){
	int i;
	Datei = fopen("Log.txt","w");
	for (i = 0; i < 7; i++)
		fprintf(Datei,"%d x %d, ",scheinanzahl[i], schein[i]);
	fclose(Datei);
}

main()
{
	Ausgabe(schein,AnzahlBerechnen(BetragEingeben(), 0));
	Speichern();
}



Ich möchte jetzt aber nicht (wie bereits geschehen) nur sinngemäß die Lösung in Log.txt speichern, sondern die komplette Ausgabe meiner Funktion "Ausgabe()".
Ich habe es bereits mit stdout versucht aber kam auch nicht weiter.
Falls mir wer helfen kann wäre ich sehr dankbar smile

Freundliche Grüße,
Marvin
 
Auf diesen Beitrag antworten »
eulerscheZahl

Warum machst du dann nicht einfach zu übrigen printf auch alle zu fprintf (bzw. zusätzlich)?
Du solltest die Datei dann aber mit "a" wie append öffnen, statt "w", da sonst alles vorherige ersetzt wird.

Alternativ kannst du auch beim Programmstart sagen, dass die Ausgabe gespeichert werden soll: wenn du das Programm in der Console startest, geht das mit programmname > ausgabe.txt. Dabei wird aber sämtliche Ausgabe umgeleitet.
Auf diesen Beitrag antworten »
LightSideOfLife

Danke, ich werde es mal versuchen!
Auf diesen Beitrag antworten »
LightSideOfLife

Ich hätte nochmal eine Frage:
Unser Prof gab uns auf die Funktion "AnzahlBerechnen" rekursiv zu lösen.
Meine Funktion ist rekursiv, oder nicht?
Sie ruft sich selbst auf, also gehe ich davon aus, dass dies die korrekte Lösung ist.
Oder müsste ich dies anders lösen?
 
Auf diesen Beitrag antworten »
Karlito

Passt so, ist rekursiv.

Gruß,

Karlito
Auf diesen Beitrag antworten »
Elisa59

Guten Tag,

ich bin über Mr. und Dr. Goohle auf die Aufgabe gestoßen und hab da einige Fragen zu. Ist da jemand eventuell, der mir die ein oder andere Frage beantworten könnte?

Viele Grüße

Elisa
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »