Datei

Hallo,
hier mal ein Quelltext von mir:

Code:
void person_hin()
{
   size_t anzahl;
   int ok;
   FILE* dat_zg = NULL;

   char name[20];

   printf("Bitte geben sie den Vornamen an:");
   scanf("%s",name);
   clrscr();
 
   dat_zg = fopen("daten.dat","a+");

   if (dat_zg != NULL)
   {
   anzahl = fwrite(name,sizeof(name),1,dat_zg);
      if (anzahl == 1)
      {
          printf(" ok");
      }
      else
      {
         printf("Fehler");
      }
    }
    else
    {
      printf("Fehler");
    }
fclose(dat_zg);
dat_zg = NULL;
clrscr();
}

Edit:
----------------------------------------
fwrite schreibt in dateien und fread liest dateien aus (dokument wird binär geschrieben)

MfG Finnex
 
Zuletzt bearbeitet:
Bei mir zeigt die Fehlersuche nur Fehler an.

In finnex' Quellcode sind keine Headerdateien eingebunden worden, daher sind die Symbole FILE, fopen(), fclose(), NULL, fscanf(), fwrite() und clrscr() nicht definiert.
Keine Ahnung in welchem Header letztere Funktion deklariert wird, aber wenn Du alle Aufrufe von clrscr() entfernst und vor die erste Zeile ein #include <stdio.h> schreibst, sollten die Fehlermeldungen verschwinden...

Gruß
Enum
 
Hallo,
ja ich bin davon ausgegangen, damit man weis welche Headder eingebunden werden müssen.
Hier nochmal ein kompletter Quelltext der 100% tut:

Code:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

void person_hin();
void person_aus();

void main(void)
{
 person_hin();
 person_aus();
 getch();

}

void person_hin()
{
   size_t anzahl;
   int ok;
   FILE* dat_zg = NULL;

   char name[20];

   printf("Bitte geben sie den Vornamen an:");
   scanf("%s",name);
   clrscr();

   dat_zg = fopen("daten.dat","a+");

   if (dat_zg != NULL)
   {
   anzahl = fwrite(name,sizeof(name),1,dat_zg);
      if (anzahl == 1)
      {
          printf(" ok");
      }
      else
      {
         printf("Fehler");
      }
    }
    else
    {
      printf("Fehler");
    }
fclose(dat_zg);
dat_zg = NULL;
clrscr();
}

//-------------------------------------------

void person_aus()
{
   size_t anzahl = 1;
   int ok;
   FILE* dat_zg = NULL;
   char name[20];

   dat_zg = fopen("daten.dat","r");

   if (dat_zg != NULL)
   {
     while (anzahl==1)
     {
      anzahl = fread(name,sizeof(name),1,dat_zg);
      printf("%s\n",name);
     }
   }
   else
   {
    printf("Fehler");
   }
fclose(dat_zg);
dat_zg = NULL;
getch();
clrscr();
}

Den Quelltext musst jetzt nur noch deinen Wünschen anpassen.
Ich hoffe es klappt jetzt.

MfG Finnex
 
Code:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

void person_hin();
void person_aus();

int main()
{
 person_hin();
 person_aus();
 getch();
 return(0);
}

void person_hin()
{
   size_t anzahl;
   int ok;
   FILE* dat_zg = NULL;

   char name[20];

   printf("Bitte geben sie den Vornamen an:");
   scanf("%s",name);

   dat_zg = fopen("daten.dat","a+");

   if (dat_zg != NULL)
   {
   anzahl = fwrite(name,sizeof(name),1,dat_zg);
      if (anzahl == 1)
      {
          printf(" ok");
      }
      else
      {
         printf("Fehler");
      }
    }
    else
    {
      printf("Fehler");
    }
fclose(dat_zg);
dat_zg = NULL;
}

//-------------------------------------------

void person_aus()
{
   size_t anzahl = 1;
   int ok;
   FILE* dat_zg = NULL;
   char name[20];

   dat_zg = fopen("daten.dat","r");

   if (dat_zg != NULL)
   {
     while (anzahl==1)
     {
      anzahl = fread(name,sizeof(name),1,dat_zg);
      printf("%s\n",name);
     }
   }
   else
   {
    printf("Fehler");
   }
fclose(dat_zg);
dat_zg = NULL;
getch();
}
 
@finnex: Jetzt wo du die clrscr() Aufrufe entfernt hast (ich nehme mal an eine MS-spezifische Funktion aus conio.h?) - wozu bindest Du die Header stdlib.h und string.h ein?
 
Hallo,
ja diese Headder braucht man hier nicht,
ich habe halt bei mein projekt die unwichtigen dinge rausgelöscht, aber dabei diese headder vergessen.
 
Zurück