Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » hilfe bei fprintf

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.05.2004, 00:48 Uhr
~planloser
Gast


kann jemand diese programm zum laufen bringen?
und zwar will ich mit fprintf einige daten speichern aber nach dem kompilieren wird das prog. nur teilweise ausgeführt und dann kommt die meldung:
der vorgang "read" konnte nicht auf dem speicher durchgeführt werden...
hier mal der quelltext:

C++:
//* Definition Teilnehmerfeld*//


#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define ANZ 10
int gesamtanzahl=0;
struct Teilnehmer
{
    char vorname [30];
    char nachname [30];
    int durchwahl ;
    char email [50];
};
void eingabeEinesTeilnehmers( struct Teilnehmer *, unsigned );
void ausgabe(struct Teilnehmer * );
void speicherung(struct Teilnehmer * );

int main()
{

//Feld aller teilnehmer
    struct Teilnehmer teilnehmerfeld[ANZ];
//Zähler
    unsigned int i;



//gesamtanzahl der teilnehmer
//abfrage mit schleife zur überprüfung ob es im erlaubten bereich liegt sowie ob es sich um eine zahl handelt
//die eingegeben wurde

    printf("Geben sie die Anzahl der Datensaetze an!<11\n");
    scanf("%ud" ,&gesamtanzahl);
              
         if (gesamtanzahl > ANZ)
              { gesamtanzahl=ANZ;
                printf("Ihre Eingabe wurde auf %d Datensaetze beschraenkt \n",ANZ);
              }
         if (gesamtanzahl==0)
              { printf("bitte Zahlenwert eingeben!!!\n");
                while(getchar()!='\n'){;}
                scanf("%d", &gesamtanzahl);
              }
              
//*eingabe der einzelenen teilnehmer*//
    for (i=0; i<gesamtanzahl;i++)
        eingabeEinesTeilnehmers(teilnehmerfeld,i);
        
        
//*ausgabe des kompletten teilnehmerfeldes*//
    ausgabe(teilnehmerfeld);
    
//speicherung
    speicherung(teilnehmerfeld);
    FILE *datei_ptr;
    system("PAUSE");
    return 0;
    
}
        
        
//*Eingabe*//
void eingabeEinesTeilnehmers( struct Teilnehmer *feld, unsigned pos)
{
    printf("Eingabe der Daten des %u. Teilnehmers:\n",pos+1);
    printf("Geben sie den Vornamen ein:\n");
    scanf("%s" ,&(feld[pos].vorname));
  
    printf("Geben sie den Nachnamen ein:\n");
    scanf("%s", &(feld[pos].nachname));
    printf("Geben sie die Durchwahl ein:\n ");
    
    if (scanf("%d", &(feld[pos].durchwahl))==0)
    { printf("bitte Zahlenwert eingeben!!!\n");
      while(getchar()!='\n');
      scanf("%d", &(feld[pos].durchwahl));
    }
    
    printf("Geben sie die Email ein:\n ");
    scanf("%s", &(feld[pos].email));
    printf("...............................................................................\n");
}

//*Ausgabe*//
void ausgabe(struct Teilnehmer * feld)
{
    unsigned int i;
    
    for    (i=0;i<gesamtanzahl;i++)
        printf("%s  %s\tdurchwahl:%d\temail:%s\n",
                feld[i].vorname,
                feld[i].nachname,
                feld[i].durchwahl,
                feld[i].email);
              
}
//*Sortieren*//    

//Speicherung
void speicherung(struct Teilnehmer * feld)
{
    unsigned int i;
    FILE *datei_txt;
    char datei[60];
    //printf("\n Unter welchen Dateinamen sollen die Datensaetze gesichert werden?:> ");
    //gets(datei);
    
    datei_txt = fopen(datei,"w");

       if(datei_txt != 0)
    {
        fclose(datei_txt);
    }
    for (i=0;i<gesamtanzahl;i++)
    fprintf(datei_txt,"%s  %s\tdurchwahl:%d\temail:%s\n",
                feld[i].vorname,
                feld[i].nachname,
                feld[i].durchwahl,
                feld[i].email);
    fclose(datei_txt);
}



IN DEN LETZTEN "= ZEILEN IST WOHL DER WURM DRIN

Dieser Post wurde am 27.05.2004 um 01:42 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.05.2004, 01:43 Uhr
Pablo
Supertux
(Operator)


1. Benutze die Board Tag selber.
2. Vermeide Doppelposts.

Danke
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.05.2004, 01:49 Uhr
Pablo
Supertux
(Operator)


Welche ist die wirkliche Fehlermeldung? An welcher Stelle bricht das Proggramm an?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.05.2004, 02:02 Uhr
~planlos
Gast


das problem liegt bei der speicherung.
irgendwann soll das prog mal ein menü haben mit dem man schreiben, speichern, sortierte ausgabe machen kann.
momentan:ich kann das prog starten, ich kann auch adressen eingeben, aber wenn die daten eingegeben sind und das prog zum punkt kommt wo es speichern soll sagt es immer:

die anw 0x77f655e9 verweist auf speicher 0x00000034,der vorgang read konnte nicht auf den speicher durchgeführt werden

ich kann mir leider momentan nicht helfen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.05.2004, 02:39 Uhr
(un)wissender
Niveauwart


Zeit ins Bett zu gehen!
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.05.2004, 08:48 Uhr
ao

(Operator)



Zitat:
~planloser postete

C++:
void speicherung(struct Teilnehmer * feld)
{
    /* .... */
    datei_txt = fopen(datei,"w");

    if(datei_txt != 0)
    {
        fclose(datei_txt);
    }
    for (i=0;i<gesamtanzahl;i++)
        fprintf(datei_txt,"%s  %s\tdurchwahl:%d\temail:%s\n",
                feld[ i ].vorname,
                feld[ i ].nachname,
                feld[ i ].durchwahl,
                feld[ i ].email);
    fclose(datei_txt);
}




Das geht so nicht. Du öffnest die Datei (fopen), und wenn das erfolgreich war (datei_txt != 0), dann schließt du sie sofort wieder. So weit zwar sinnlos, aber noch korrekt.
Danach schreibst du Daten in die bereits geschlossene Datei, und das geht natürlich in die Hose. Die Datei muss dazu offen sein. Das fclose vorher muss weg.

ao

Dieser Post wurde am 27.05.2004 um 08:49 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.05.2004, 16:40 Uhr
~planloser
Gast


ich habe es zum laufen gebracht. nur funktionier eingabe, ausgabe und gespeicherte ein und ausgabe.
jetzt muss ich mich mal an eine menue fuehrung ran machen und noch ein paar bubblesort varianten reinbringen.

vielen dank nochmals
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: