Fehler mit fscanf()

PuMi2006

Grünschnabel
Hi,

ich habe bei mir vorgehabt Werte aus einer Datei für ein Spiel zu laden, was irgendwie nicht ging. Zwar schrieb er die Werte in Dateien rein mit fprintf() aber konnte diese nicht auslesen.

Nun habe ich mich heute morgen ans Werk gemacht und ein ziemlich einfaches Programm geschrieben, in welchem eine Datei geschrieben wird, ausgelesen wird und der Wert dann wiederum in einer anderen Datei geschrieben wird.

Ich benutze Visual Studio 2005.

Ich lasse die Zahl 2 erstellen, gibt er mir jedoch eine 0 aus. Ich weiß echt nicht mehr weiter. Kann mir jemand helfen?

Code:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
	FILE	*Soso1;
	FILE	*Soso2;
	FILE	*Soso3;

	int	VariableA = 0;

	if((Soso3 = fopen("Testdatei.txt", "w"))==NULL)
		return 0;

	if((Soso1 = fopen("Testdatei.txt", "r"))==NULL)
		return 0;

	if((Soso2 = fopen("Ausgabe.txt", "w"))==NULL)
		return 0;

	if((fprintf(Soso3, "%s\n", "Zahl:2"))==NULL)
		return 0;

	if((fscanf(Soso1, "Zahl:%o\n", "Zahl:", VariableA))==NULL)
		return 0;

	if((fprintf(Soso2, "%s%o\n", "Ausgabe: ", VariableA))==NULL)
		return 0;

	return 0;
}

MfG, ;) Patrick Polzin
 
Hi,

wie wärs wenn du zuerst die datei schreibst, dann schließt und dann erst öffnest (zum lesen).

Also

FILE* f1 = fopen(....., "w");

fprintf(f1, ....);

fclose(f1);

FILE* f2 = fopen(...., "r");

usw.
 
Außerdem:
Code:
	if((fscanf(Soso1, "Zahl:%o\n", "Zahl:", VariableA))==NULL)
		return 0;
Vor der VariableA fehlt der Adressoperator!
Sicher, dass der dritte Parameter "Zahl:" richtig ist?
Das "\n" ist überflüssig.
--> Ich meine es müßte (Soso1, "Zahl:%o", &VariableA) heißen.
 
Zurück