fatal error C1004: Unerwartetes Dateiende gefunden



  • Hi,
    ich wollte mal wieder ein Programm schreiben doch das Kompilieren scheitert an einem Fehler:

    fatal error C1004: Unerwartetes Dateiende gefunden
    

    Liegt es an meiner Headerdatei (.h)?
    Soll ich die kompilieren?
    Doch das kann er auch nicht, mein Compiler scheitert daran.

    Benutzte Microsoft Visual C++ 6.0

    Der Compiler sagt mir, wenn ich Debuggen will (F5), dass er eine .exe erzeugen will, das klappt nicht.



  • Irgendwo }, #endif oder ; am Ende vergessen?

    MfG SideWinder



  • Wüsste nicht wo.
    Mein Quellcode:

    #include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    
    int main(int argc, char* argv[])
    {
        FILE *fp_in, *fp_out;
        char zeichen, dateiname[100];
        int shift;
    
        printf("Welche Datei soll codiert werden: \n");
        scanf("%s",dateiname);
        printf("Um wie viele Einheiten die Buchstaben verruecken: \n");
        scanf("%d",&shift);
    
        if( (fp_in = fopen(dateiname, "rt")) == NULL)
        {
            printf("Fehler beim Öffnen der Datei\n");
    	    exit(0);
    	}
    
        if( (fp_out = fopen("Codiert.txt", "wt")) == NULL)
        {
            printf("Fehler beim Öffnen der Datei\n");
    	    exit(0);
    	}
    
        while((zeichen = fgetc(fp_in)) != EOF)
        {
            if (isprint(zeichen) && isprint(zeichen-shift)) {
    		    fputc(zeichen-shift, fp_out);
    		} else {
    			fputc(zeichen, fp_out);
    
        }
    
        fclose(fp_in);
        fclose(fp_out);
        return 0;
    }
    

    Headerdatei:

    // stdafx.h : Include-Datei für Standard-System-Include-Dateien,
    //  oder projektspezifische Include-Dateien, die häufig benutzt, aber
    //      in unregelmäßigen Abständen geändert werden.
    //
    
    #if !defined(AFX_STDAFX_H__99943BDD_ADE3_11D2_B020_0060084D9898__INCLUDED_)
    #define AFX_STDAFX_H__99943BDD_ADE3_11D2_B020_0060084D9898__INCLUDED_
    
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    
    // ZU ERLEDIGEN: Verweisen Sie hier auf zusätzliche Header-Dateien, die Ihr Programm benötigt
    
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ fügt zusätzliche Deklarationen unmittelbar vor der vorherigen Zeile ein.
    
    #endif // !defined(AFX_STDAFX_H__99943BDD_ADE3_11D2_B020_0060084D9898__INCLUDED_)
    


  • Das else in der while-Schleife scheint ein heißer Tip zu sein.

    MfG SideWinder



  • Gute Idee, aber jetzt habe ich zwei Fehler. 😞

    --------------------Konfiguration: Kodieren - Win32 Debug--------------------
    Kompilierung läuft...
    Kodieren.cpp
    Linker-Vorgang läuft...
    LIBCD.lib(wincrt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _WinMain@16
    Debug/Kodieren.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.

    Kodieren.exe - 2 Fehler, 0 Warnung(en)



  • Du schreibst eine Konsolenanwendung dürftest aber kein solches Projekt erstellt haben, stattdessen hast du eine Win32-Anwendung versucht zu erstellen.

    Mach ein neues Projekt und wähl diesmal Win32-Konsolenanwendung aus.

    MfG SideWinder



  • while((zeichen = fgetc(fp_in)) != EOF)
        {
            if (isprint(zeichen) && isprint(zeichen-shift)) {
                fputc(zeichen-shift, fp_out);
            } else {
                fputc(zeichen, fp_out);
            } // <--- Da fehlt eine Klammer "zu"
    
        }
    


  • Danke. 🙂

    Es klappt wieder.


Anmelden zum Antworten