Fehler beim Ausgeben eines Einfachen Programms..



  • Hallo,
    ich würd gerne mal wissen, warum VS 2012 meine Datei nicht ausführt.. Mit der Fehlermeldung die VS mit um die Ohren haut kann ich irgendwie nicht viel Anfangen..

    Das Programm soll eine Textdatei kopieren und dessen Inhalt in eine Zweite Datei schreiben..

    #include<stdio.h>
    #include<stdlib.h>
    
    int copyMatNr9(FILE *fin, FILE *fout)
    {
    	int counter = 0;
    
    	// Prüfen, ob das Ende einer Textdatei erreicht wurde
    	while(fscanf(fin, "%s") != EOF)
    	{
    		// Hochzählen der Daten innerhalb der eingabe.txt
    		counter++;
    
    		// schreiben der Daten in die Ausgangsdatei
    		fprintf(fout, "%s");
    	}
    	return counter;
    }
    
    int main(void)
    {
    	FILE *fin = NULL, *fout = NULL;
    	int noMatNr;
    	char *finname = "eingabe.txt", *foutname = "ausgabe.txt";
    
    	/* Öffnen der Datei */
    	fin = fopen(finname, "r");
    	fout = fopen(foutname, "w");
    
    	noMatNr = copyMatNr9(fin, fout);
    
    	printf("Datei %s enthaelt %d 9er Matrikelnummern\n", foutname, noMatNr);
    
    	/* Dateien schließen */
    	fclose(fin);
    	fclose(fout);
    
    	system("pause");
    
    	return 0;
    }
    

    Hier die Fehlermeldung:

    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Users\Daniel\Documents\Visual Studio 2012\Projects\Klausur SS 2006 - Aufgabe 2\Debug\Klausur SS 2006 - Aufgabe 2.exe" geladen. Symbole wurden geladen.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\ntdll.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\kernel32.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\KernelBase.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\msvcr110d.dll" geladen. Symbole wurden geladen.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\user32.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\gdi32.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\lpk.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\usp10.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\msvcrt.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\advapi32.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\sechost.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\rpcrt4.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\sspicli.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\cryptbase.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\imm32.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\msctf.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    Debug Assertion Failed!
    
    Program: ...sur SS 2006 - Aufgabe 2\Debug\Klausur SS 2006 - Aufgabe 2.exe
    File: f:\dd\vctools\crt_bld\self_x86\crt\src\fscanf.c
    Line: 52
    
    Expression: (stream != NULL)
    
    For information on how your program can cause an assertion
    failure, see the Visual C++ documentation on asserts.
    
    (Press Retry to debug the application)
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\uxtheme.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\dwmapi.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\ole32.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    "Klausur SS 2006 - Aufgabe 2.exe" (Win32): "C:\Windows\SysWOW64\oleaut32.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
    Das Programm "[5492] Klausur SS 2006 - Aufgabe 2.exe" wurde mit Code 3 (0x3) beendet.
    

  • Mod

    Dann wurden die Dateien wohl nicht geöffnet.

    Da du relative Pfadangaben benutzt, wird der aktuelle Pfad wohl nicht der sein, den du erwartest. Die Dateien werden daher nicht geöffnet.



  • Wo soll denn fscanf die gelesenen Daten ablegen?
    Welche Daten soll fprintf denn ausgeben?

    Da sollten Compilerwarnungen kommen. Wenn nicht den Warnlevel hochsetzen (Maximum)



  • Erster Google-Treffer 🙄

    DirkB schrieb:

    Da sollten Compilerwarnungen kommen. Wenn nicht den Warnlevel hochsetzen (Maximum)

    Wie im Link beschrieben, wird wohl die zuletzt kompilierte Version genommen, welche kein Debug-Build war.


  • Mod

    Youka schrieb:

    Erster Google-Treffer 🙄

    Das sind nicht die Meldungen, die er meinte. Er meinte wohl:

    Program: ...sur SS 2006 - Aufgabe 2\Debug\Klausur SS 2006 - Aufgabe 2.exe
    File: f:\dd\vctools\crt_bld\self_x86\crt\src\fscanf.c
    Line: 52
     
    Expression: (stream != NULL)
     
    For information on how your program can cause an assertion
    failure, see the Visual C++ documentation on asserts.
    

    Da wurde ein FILE* mit Wert 0 an fscanf übergeben. Die Dateien sind also wohl nicht offen.

    Der Rest der fscanf und printf ist natürlich auch falsch, wie DirkB schon schrieb.


Anmelden zum Antworten