empty character constant

Lark

Mitglied
Hallo,
ich bin mir gerade ads OpenBook auf http://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:
#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
 
Es geht um Zeile 12:
Code:
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 :-)
 
Zuletzt bearbeitet:
Und damit es seinen Zweck erfüllt machst du folgendes:
Code:
char [1] byte;
byte[0] = '';
fwrite(byte, 1, size, rem);
 
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.
 
Zuletzt bearbeitet:
Zurück