tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1564
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Lark
    Lark Lark ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Beiträge
    68
    Hallo,
    ich bin mir gerade ads OpenBook auf www.pronix.de am durchlesen und stoße immer wieder auf den Fehler "empty character constant".
    (25 D:\c\pronix\kapitel 19 Datein\bsp42.1.c:12
    empty character constant).
    Diesen kann ich mir aber nirgends erklären auch nach dem ich hier im Forum und wo anders nach einer Lösung gesucht habe aber nichts gefundent habe.
    Die oben genannte Fehlermeldung trifft aud das folgende Beispiel zu und dort exestiert die Zeile 25 nicht mal.

    Code:
    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
    
    #include <stdio.h>
    void my_remove(char *rm)
    {
       unsigned long size;
       FILE *rem=fopen(rm, "w+b");
       if(rem != NULL)
          {
             fseek(rem, 0L, SEEK_END);  /* Stream an das Dateiende */
             size=ftell(rem);         /* Grösse in Bytes ermitteln */
             /* Kompletten Inhalt mit  überschreiben */
             fwrite((char *)'', 1, size, rem);
             /* damit die Datei gelöscht werden kann, schliessen */
             fclose(rem);
             remove(rm);    /* Jetzt weg damit */
          }
    }
    int main()
    {
       char datei[] = "datein/test2.txt";
       my_remove(datei);
       fflush(stdin);
       getchar();
       return 0;
    }
    /*Dies wäre Zeile 25*/

    Ich hoffe ich hab mich verständlich genug ausgedrückt.
    MfG
    Marcel
     

  2. #2
    Tobias Grimm Tobias Grimm ist offline Rookie
    Registriert seit
    Mar 2004
    Ort
    Hessen
    Beiträge
    9
    Es geht um Zeile 12:
    Code :
    1
    
    fwrite((char *)'', 1, size, rem);

    Bei (char *)'' handelt es sich um eine leere Zeichenkonstante, du musst ein bestimmtes Zeichen definieren (z.B. ist (char *)' ' eine Leerzeichenkonstante)

    edit: ich sehe grad dann erfüllt das Programm nicht mehr seinen Zweck, aber immerhin ist der Fehler behoben
    Geändert von Tobias Grimm (01.06.04 um 21:01 Uhr)
     

  3. #3
    Registriert seit
    May 2004
    Beiträge
    287
    Und damit es seinen Zweck erfüllt machst du folgendes:
    Code :
    1
    2
    3
    
    char [1] byte;
    byte[0] = '';
    fwrite(byte, 1, size, rem);
     

  4. #4
    Avatar von Lark
    Lark Lark ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Beiträge
    68
    Danke, es funktioniert.

    Warum sollte es jetzt nicht mehr seinen Zweck erfüllen? Bei mir funktioniert es so wie es funktionieren soll.

    MfG

    edit:

    @Dudadida: Bei deinem Beispiel wird die gleiche Fehlermeldung logischerweiße auch ausgeben.
    Geändert von Lark (01.06.04 um 21:11 Uhr)
     

  5. #5
    Registriert seit
    May 2004
    Beiträge
    287
    ja sorry, meinte natürlich
    Code :
    1
    
    byte[0] = 0;
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 02.09.10, 06:23
  2. Notice: Use of undefined constant?
    Von one_o im Forum PHP
    Antworten: 10
    Letzter Beitrag: 25.04.09, 23:43
  3. Notice: Use of undefined constant
    Von tuFrogs im Forum PHP
    Antworten: 3
    Letzter Beitrag: 05.09.07, 15:37
  4. Gallery PHP undefined constant
    Von fUnKuCh3n im Forum PHP
    Antworten: 1
    Letzter Beitrag: 05.06.05, 20:54
  5. Krieg Fehler: empty character .. nicht weg
    Von Mairhofer im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 12.04.04, 21:08