[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: debugging
Felix Kollmann schrieb:
> I the file which is attached is a extract of the function to open the
> file.
> int def_config::open (char name [255])
If I´m not completely wrong this will just pass a pointer to an array of
char - not the array itself. And the "255" is completely irrelevant.
Nothing serious here though.
> {
>   FILE *datei;
>   char zeile [255];
> 
>   if (!(datei= fopen ("jumpnodes.conf", "r")))
>   {
>     printf ("Fehler beim Öffnen der Datei '%s' :\n", name);
>     perror (name);
>     printf ("------- Fehler\n\n");
>     exit (1);
This error messages are not printed, right? That means the file is
opened correctly (for reading, as text).
>   } else
>   {
>     printf ("Öffne Datei '%s' :\n",name);
>   }
> 
>   while (fgets (zeile, 255, datei))
>   {
>     fscanf (datei, zeile);
Stop - you first read a string (up to 255 characters) into "zeile". Then
you use that string you just read as format string for fscanf - and omit
the other fscanf parameters you need.
Have a look at the fscanf docs again. 
>     if (!(zeile=="\n")) { konsole.do_command (zeile); }
The "zeile == "\n"" is wrong. You compare the pointer named "zeile" with
the pointer to the constant "\n". For string comparisons you have to use
strcmp () (or the std string class).
	Christian