# [C]Text aus einer Datei lesen und dann in einer anderen schreiben



## PuMi2006 (24. Januar 2007)

Hi Leute,

ich habe vorhin an einem DirectX Programm geschrieben, welches den Vor- und Nachnamen aus einer Datei liest und mit D3DXFont->DrawTextA() ausgeben sollte. Allerdings kamen merkwürdige Zeichen usw. heraus wie dieses Beispiel von mir hier. Ich hab nun zwei Stunden gesucht und herumprobiert, fand aber keine Lösung.

Wichtig: Es muss fscanf sein. Es muss ein Char[] sein.

http://www.art-train.de/DirectX/charprob.zip

Wie man nun sieht, gibt es eigenartige Ausgaben und ich weiß echt nicht mehr weiter. Vor einem Monat hab ich mir eine Klasse mit Methoden angelegt für das Problem, hatte alles super drauf, und jetzt nach dem Formatieren und neudraufspielen von XP geht so gut wie alles schief. Ich benutze Visual Studio 2005.

Damit ihr einen Überblick über das Problem habt, gibt es hier nun den Quellcode der Funktionsaufrufe:


```
FILE* Dat, *Dat2;
	if(NULL==(Dat = fopen("Strings.txt", "r")))
		return false;
	Dat2 = fopen("Insert.txt", "w");

	char Text[50];

	while(true)
	{
		fprintf(Dat2, "_%s", &Text[0]);
		if(EOF == fscanf(Dat, "%s", &Text[0]))
			break;
		/*
		fscanf(Dat, "%s", &Text[0]);
		if(Text == "$END)
			break;
		*/
	}

	fclose(Dat);
	fclose(Dat2);
	MessageBox(NULL, L"OK", L"", 16);
```

Für schnelle und erfolgreicher Hilfe bin ich sehr dankbar.

MfG, PuMi2006


----------



## xglass (24. Januar 2007)

Ich weiß jetzt nicht ob dir das was hilft, wie du siehst steht in deinem Text nichts( also mist ) drin. 

```
#include <stdio.h>

int main(){

	char buffer[256]; //Da steht nix drin1
	FILE* Dat;
	FILE* Dat2;
	if(!(Dat = fopen("Strings.txt", "r")))
		fprintf(stderr,"Fehler beim datei oeffnen!");

	Dat2 = fopen("Insert.txt", "w");
	while(1){
		
		fprintf(Dat2, "_%s", &buffer);
		if(EOF == fscanf(Dat, "%c", &buffer[0]))
			break;
		
		/*
		fscanf(Dat, "%s", &buffer[0]);
		if(buffer == EOF)
			break;

		*/
	}

	fclose(Dat);
	fclose(Dat2);

	return 0;
}
```


----------

