<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Bekomme zugriffsverletzung weiß aber nicht warum]]></title><description><![CDATA[<pre><code>//Header Dateien initiallisieren
#include &lt;stdio.h&gt;
#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;iomanip.h&gt;
#include &lt;dir.h&gt;
//__________________________________________________________________________________________
struct ERGEBNIS
{
int anschlag;
char name[50];
};
//__________________________________________________________________________________________
//Initiallisieren der Funktionen

void kopfi (void);                                                //Funktion für Kopf
void auslesen (char *,char *, int &amp;);                             //Funktion zum einlesen der TXT
void zaehlen (char *,int &amp;, int &amp;, int &amp;, int &amp;, int &amp;, int &amp;);   //Funktion zum Zählen der Zeichen
void ausgeben (int &amp;, int &amp;, int &amp;, int &amp;, int &amp;, int &amp;);         //Funktion zur Ausgabe
void abfrage (int&amp;);                                              //Funktion zum erneuten Einlesen
void zahlerlosch (int &amp;, int &amp;, int &amp;, int &amp;, int &amp;, int &amp;);      //Funktion um Zähler auf 0
void verzeichnis();                                               //FUnktion zum Verzeichnis einlesen

//__________________________________________________________________________________________
//MAIN

int main()
{
 char umschreib[5];
 int zahl=0;
 int zeichen =0;
 char text[1000];
 char Dateiname[50];
 int zaehler= 0, zahlen =0, Gbuch = 0, AltGr = 0, worter = 1, zbruch = 0;
 char *filename = Dateiname ;
 ERGEBNIS ergebnis [40];
 char auswahl;
 //gotoxy(5,1);

for(int a=1; a&lt;2; a*=a)                 //Auswahlmenü fuer die Aufgaben
     {
        kopfi();
        int wahl;
        cout &lt;&lt; endl;
        cout &lt;&lt; &quot;    [1] Auswertung der TEXTDATEI\n\n&quot;;
        cout &lt;&lt; &quot;    [2] Auswertung der Verzeichnisstruktur\n\n&quot;;
        cout &lt;&lt; &quot;    [3] Auswertung des .RTF Dokuments\n\n\n&quot;;
        cout &lt;&lt; &quot;\t\t\tAuswahl: &quot;;
        cin &gt;&gt; wahl;

            switch (wahl)
                   {
                     case 1:    //Auswertung der Textdatei
                                clrscr();
                                kopfi();
                                cout &lt;&lt; &quot;Sie haben die Option zur Auswertung der TEXTDATEI gewaehlt\n&quot;;
                                auslesen (text, Dateiname,zahl);
                                zaehlen (text, zaehler, zahlen, Gbuch,AltGr, worter, zbruch);
                                ausgeben (zaehler, zahlen, Gbuch, AltGr, worter, zbruch);
                                zahlerlosch (zaehler, zahlen, Gbuch, AltGr, worter, zbruch);
                                abfrage (zeichen);
                                break;

                     case 2:    //Auswertung des Verzeichnis
                                clrscr();
                                kopfi();
                                cout &lt;&lt; &quot;Sie haben die Option Auswertung des VERZEICHNIS gewaehlt\n\n\n&quot;;
                                verzeichnis();
                                break;

                     case 3:    //Auswertung des .rtf Dokuments
                                clrscr();
                                kopfi();
                                cout &lt;&lt; &quot;Sie haben die Option Auswertung des .RTF Dokuments gewaehlt\n\n\n&quot;;

         default:               cout&lt;&lt;&quot;\n\t\tSie haben eine falsche Tasteneingabe getaetigt!\n&quot;;
                                cout&lt;&lt;&quot;\t\t\tBitte ueberpruefen Sie Ihre Eingabe\n&quot;;
                                cout&lt;&lt;&quot;\t\tUm Ihre Eingabe zu Wiederholen bitte ENTER druecken\n\n\n&quot;;
                                a=1;
                                getchar();
                                clrscr();
                                kopfi();
                                break;

                        }
                  }

getchar();
}

//__________________________________________________________________________________________
//FUNKTIONEN
//__________________________________________________________________________________________

//Funktion fuer den Kopf
void kopfi(void)
{
cout &lt;&lt; &quot;\n\t::::: C++ Project by SASCHA WAGNER and DANIEL GRUBER :::::\n&quot;;//Header
cout &lt;&lt; &quot;\t\t\tCopyright and all Rights reserved\n\n&quot;;
cout &lt;&lt; &quot;\t\t       10 Minuten-Abschriftsauswertung v0.1 BETA&quot;&lt;&lt;endl;
   for(int x=0; x&lt;80; x++)           //Strichlinie HEADER
     {
       cout &lt;&lt; &quot;_&quot;;
     }
   cout &lt;&lt; &quot;\n&quot;;
}

//__________________________________________________________________________________________
//       Funktion zur erneuten Wiederholen einer Datei einlesen

void abfrage (int &amp;zeichen)
{
cout&lt;&lt;&quot;Moechten Sie eine weitere Datei zaehlen lassen?&quot;&lt;&lt;endl&lt;&lt;&quot;Fuer JA bestaedigen sie mit der &lt;0&gt; fuer NEIN &lt;1&gt;&quot;;
cin&gt;&gt; zeichen;

}
//__________________________________________________________________________________________

void auslesen (char *text, char *Dateiname, int &amp;zahl)
{
 //Variablen deklaration
 char loesch=0;           //Variable zum löschen
 char lauf[30];           //Variable Verzeichnis + Dateiname
 char pfad [27];          //Variable für das Verzeichnis

cout&lt;&lt;endl&lt;&lt;endl&lt;&lt; &quot;Welche Datei moechten Sie oeffnen&quot;&lt;&lt;endl&lt;&lt;&quot;Laufwerk(z.B. A:\\, C:\\, D:\\):&quot;&lt;&lt;endl;
gets(lauf);
cout&lt;&lt; &quot;Geben Sie den Pfad an:&quot;&lt;&lt;endl&lt;&lt;lauf;
gets(pfad);
strcat(lauf,pfad);
strcpy(Dateiname,lauf);

 for (int i =0; i&lt;10000;i++)
	{
	text[i] = loesch;
    }

FILE *ream;                                //Zum Öffnen
if ((ream = fopen(lauf, &quot;r&quot;)) != NULL)
{
fseek(ream,0,SEEK_SET);                    //Zeiger auf 0
fread (text,9999,1,ream) ;                 //Auslesen der Textdatei + Speichern
fclose(ream);                              //Schließt den Stream
}
else
{
 cout &lt;&lt; &quot;Datei konnte nicht gelesen werden oder ist nicht vorhanden&quot;;
 getchar();
}
zahl++;
}

//__________________________________________________________________________________________
void zaehlen (char *text,int &amp;zaehler, int &amp;zahlen, int &amp;Gbuch, int &amp;AltGr, int &amp;worter, int &amp;zbruch)
{
        //Variablen deklaration
        int b,c;
	for(int i=0; i&lt;10000;i++)
	{

	  b = text[i];
	  c = text [i-1];

          /*int bb;             //Zum herrausfinden der Ascii Codes
          bb=b;
          cout &lt;&lt; endl &lt;&lt; bb &lt;&lt; &quot; - &quot; &lt;&lt; b &lt;&lt;endl;*/

	   if ( b &gt;= 65 &amp;&amp; b&lt;=90 || b&gt;= 58 &amp;&amp; b&lt;60 ||b&gt;60 &amp;&amp; b&lt;= 93|| b&gt;= 33 &amp;&amp; b&lt;=34|| b&gt;= 36 &amp;&amp; b&lt;= 42|| b&gt;= 95  &amp;&amp; b&lt;=96|| b&gt;= 123 &amp;&amp; b&lt;126|| b==-114|| b==-103|| b==-102 || b == -77 || b == -78 || b == -75 || b == -128)
	   {
	   zaehler = zaehler +2;   //A bis Z Großbuchstaben Ascii
	   }
	   else if( b &gt;= 97 &amp;&amp; b&lt;=122 || b&gt;=48 &amp;&amp; b&lt;=57|| b==32|| b==35|| b&gt;= 43 &amp;&amp; b&lt;=46|| b== -31|| b== -124|| b==-108|| b==-127|| b == 9 || b == -28 || b == -4 || b == -10)
	   {
	    zaehler++;            //A-Z Kleinbuchstaben Ascii
	   }
	   if (b &gt;= 48 &amp;&amp; b &lt;= 57)
		{
		zahlen ++;       //Anzahl der Zahlen
		}
	   if(b &gt;= 65 &amp;&amp; b &lt;= 90)
		{
		Gbuch ++;        //Zeilenumbruch
		}
           if( b &gt;= 91 &amp;&amp; b&lt;=93 || b&gt;=123 &amp;&amp; b&lt;=126|| b&gt;=-4&amp;&amp; b&lt;= -3||b&gt;= 63 &amp;&amp; b&lt;=64|| b== -46 || b &gt;= -75 &amp;&amp; b &lt;= -78 || b == -128)
		{
		AltGr ++;       //Sonderzeichen mit AltGR
		}
	    if ( b==32 &amp;&amp; c != 32 || b==10 &amp;&amp; c != 32)
	    {
	    worter ++;         //Anzahl der Wörter
	    }
            if ( b == 10)
            {
            zbruch ++;
            }

	}

}
//__________________________________________________________________________________________
void ausgeben (int &amp;zaehler, int &amp;zahlen, int &amp;Gbuch, int &amp;AltGr, int &amp;worter, int &amp;zbruch)
{
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Anschlaege:\t&quot; &lt;&lt; zaehler;
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Zahlen:\t&quot; &lt;&lt; zahlen;
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Grossbuchstaben:\t&quot; &lt;&lt; Gbuch;
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Sonderzeichen:\t&quot; &lt;&lt; AltGr;
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Woerter:\t&quot; &lt;&lt; worter;
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Zeilenumbrueche:\t&quot; &lt;&lt; zbruch;

}

//__________________________________________________________________________________________

void zahlerlosch (int &amp;zaehler, int &amp;zahlen, int &amp;Gbuch, int &amp;AltGr, int &amp;worter, int &amp;zbruch)
{
zaehler= 0;                  //Setzt alle Zähler auf 0
zahlen = 0;
Gbuch = 0;
AltGr = 0;
worter = 1;
zbruch = 0;
}

//__________________________________________________________________________________________

void verzeichnis(void)
{

     //Variablen deklaration
    ERGEBNIS erg;                      //Variable für das speichern der ergebnisdatei
    FILE *Datei;                       //Variable zum speichern der ergebnisdatei
    ffblk Datein;                      //Variable für die Funktion findfirst() bzw. findnext()
    char Pfad1[256];                   //Variable zum zwischenspeichern des pfades
    char Pfad[256];                    //Variable zum eingeben des Pfades
    char Pfaderg[256];                 //Variable zum eingeben des Zielorts der Ergebnisdatei
    char Dateityp[20]=&quot;*.txt&quot;;         //Variable für den Dateityp
    char lauf[256];                    //Variable zum öffnen der mit findfirst() gefundenen datein
    char text[1000];                   //Variable zum Speichern des Textes
    int b,i=0;                         //Variablen zum zaehlen
    int done;                          //Variabel die für findfirst benötigt wird
    int zaehler=0;                     //Variable zum zählen der der textdatein
    int Anzahl=0;                      //Variable zum zaehlen der Datein im Verzeichnis

    cout &lt;&lt; &quot;Pfad angeben: &quot;;
    gets(Pfad);                        //Pfadeingabe für findfirst
    cout &lt;&lt; &quot;Pfad und Dateiname für die Ergebnisdatei: &quot;;
    gets(Pfaderg);                     //Pfadeingabe für die ERgebnisdatei

    strcpy(Pfad1,Pfad);                //zwischenspeichern des Pfads
    strcat(Pfad,Dateityp);             //anhängen des Dateityps an den Pfad für die findfirst funktion
    done = findfirst(Pfad,&amp;Datein,0);  //ausführen der findfirst funktion
    while (!done)
    {
          for (int i=0;i&lt;1000;i++)     //Variable Text mit NULL füllen
          text[i]=NULL;
          strcpy(lauf,Pfad1);          //kopierens des Pfades für das öffnen der gefunden datei
          strcat(lauf,Datein.ff_name); //anhängen des Dateinamen an den pfad
          FILE *ream;
          ream = fopen(lauf, &quot;r&quot;);     //öffnen der gefunden datei und auslesen
          fseek(ream,0,SEEK_SET);
          fread (text,999,1,ream) ;
          fclose(ream);                //schliesen des streams
          zaehler=0;                   //zaehler auf 0 setzten

          //Zaehlen der Anschläge in der Datei
          for(int i=0; i&lt;1000;i++)
          {
          b = text[i];

	   if ( b &gt;= 65 &amp;&amp; b&lt;=90 || b&gt;= 58 &amp;&amp; b&lt;60 ||b&gt;60 &amp;&amp; b&lt;= 93|| b&gt;= 33 &amp;&amp; b&lt;=34|| b&gt;= 36 &amp;&amp; b&lt;= 42|| b&gt;= 95  &amp;&amp; b&lt;=96|| b&gt;= 123 &amp;&amp; b&lt;126|| b==-114|| b==-103|| b==-102 || b == -77 || b == -78 || b == -75 || b == -128)
	   {
	    zaehler = zaehler +2;
	   }
	   else if( b &gt;= 97 &amp;&amp; b&lt;=122 || b&gt;=48 &amp;&amp; b&lt;=57|| b==32|| b==35|| b&gt;= 43 &amp;&amp; b&lt;=46|| b== -31|| b== -124|| b==-108|| b==-127|| b == 9 || b == -28 || b == -4 || b == -10)
	   {
	    zaehler++;
	   }
           }
           //Ende des Zaehlens
           Anzahl++;                  //Anzahl 1 hochzaehlen um die Datein zu zaehlen
           strcpy(erg.name,Datein.ff_name);   //kopieren des dateinamen in den struct zum speichern
           erg.anschlag = zaehler;            //kopieren der anschläge in den struct zum speichern
           if ((Datei = fopen(Pfaderg, &quot;w&quot;)) != NULL)  //öffnen des streams zum speichern der datei
           {
              fwrite(&amp;erg,sizeof(ERGEBNIS),1,Datei);   //speichern des dateinamen und der anschläge in die angegebenen ergebnisdatei
           }
           else
           {
               cout &lt;&lt; &quot;speichern fehlgeschlagen\t\t&quot;;
           }
           fclose (Datei);                             //schliesen des streams
           cout &lt;&lt; Datein.ff_name &lt;&lt; &quot;\t\t&quot; &lt;&lt; zaehler&lt;&lt; endl;     //ausgabe des dateinamen und der anschläge
          done = findnext(&amp;Datein);               //suchen der nächsten datei
    }

    cout &lt;&lt; &quot;Anzahl der Datein: &quot; &lt;&lt; Anzahl;       //ausgabe der anzahl der datein

    getchar();

}
</code></pre>
<p>das programm soll zeichen in einer TXT datei lesen können.<br />
hat bis gestern auch noch funktioniert nur gerade nach den auskommentieren und dann beim versuch was geht was nicht geht das im switch die 1 nicht.<br />
sprich die einzelne .txt datei auslesen.<br />
er kann nur txt auslesen</p>
<p>brauche dringend hilfe</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145285/bekomme-zugriffsverletzung-weiß-aber-nicht-warum</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 03:10:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145285.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Apr 2006 14:36:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bekomme zugriffsverletzung weiß aber nicht warum on Wed, 26 Apr 2006 14:36:32 GMT]]></title><description><![CDATA[<pre><code>//Header Dateien initiallisieren
#include &lt;stdio.h&gt;
#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;iomanip.h&gt;
#include &lt;dir.h&gt;
//__________________________________________________________________________________________
struct ERGEBNIS
{
int anschlag;
char name[50];
};
//__________________________________________________________________________________________
//Initiallisieren der Funktionen

void kopfi (void);                                                //Funktion für Kopf
void auslesen (char *,char *, int &amp;);                             //Funktion zum einlesen der TXT
void zaehlen (char *,int &amp;, int &amp;, int &amp;, int &amp;, int &amp;, int &amp;);   //Funktion zum Zählen der Zeichen
void ausgeben (int &amp;, int &amp;, int &amp;, int &amp;, int &amp;, int &amp;);         //Funktion zur Ausgabe
void abfrage (int&amp;);                                              //Funktion zum erneuten Einlesen
void zahlerlosch (int &amp;, int &amp;, int &amp;, int &amp;, int &amp;, int &amp;);      //Funktion um Zähler auf 0
void verzeichnis();                                               //FUnktion zum Verzeichnis einlesen

//__________________________________________________________________________________________
//MAIN

int main()
{
 char umschreib[5];
 int zahl=0;
 int zeichen =0;
 char text[1000];
 char Dateiname[50];
 int zaehler= 0, zahlen =0, Gbuch = 0, AltGr = 0, worter = 1, zbruch = 0;
 char *filename = Dateiname ;
 ERGEBNIS ergebnis [40];
 char auswahl;
 //gotoxy(5,1);

for(int a=1; a&lt;2; a*=a)                 //Auswahlmenü fuer die Aufgaben
     {
        kopfi();
        int wahl;
        cout &lt;&lt; endl;
        cout &lt;&lt; &quot;    [1] Auswertung der TEXTDATEI\n\n&quot;;
        cout &lt;&lt; &quot;    [2] Auswertung der Verzeichnisstruktur\n\n&quot;;
        cout &lt;&lt; &quot;    [3] Auswertung des .RTF Dokuments\n\n\n&quot;;
        cout &lt;&lt; &quot;\t\t\tAuswahl: &quot;;
        cin &gt;&gt; wahl;

            switch (wahl)
                   {
                     case 1:    //Auswertung der Textdatei
                                clrscr();
                                kopfi();
                                cout &lt;&lt; &quot;Sie haben die Option zur Auswertung der TEXTDATEI gewaehlt\n&quot;;
                                auslesen (text, Dateiname,zahl);
                                zaehlen (text, zaehler, zahlen, Gbuch,AltGr, worter, zbruch);
                                ausgeben (zaehler, zahlen, Gbuch, AltGr, worter, zbruch);
                                zahlerlosch (zaehler, zahlen, Gbuch, AltGr, worter, zbruch);
                                abfrage (zeichen);
                                break;

                     case 2:    //Auswertung des Verzeichnis
                                clrscr();
                                kopfi();
                                cout &lt;&lt; &quot;Sie haben die Option Auswertung des VERZEICHNIS gewaehlt\n\n\n&quot;;
                                verzeichnis();
                                break;

                     case 3:    //Auswertung des .rtf Dokuments
                                clrscr();
                                kopfi();
                                cout &lt;&lt; &quot;Sie haben die Option Auswertung des .RTF Dokuments gewaehlt\n\n\n&quot;;

         default:               cout&lt;&lt;&quot;\n\t\tSie haben eine falsche Tasteneingabe getaetigt!\n&quot;;
                                cout&lt;&lt;&quot;\t\t\tBitte ueberpruefen Sie Ihre Eingabe\n&quot;;
                                cout&lt;&lt;&quot;\t\tUm Ihre Eingabe zu Wiederholen bitte ENTER druecken\n\n\n&quot;;
                                a=1;
                                getchar();
                                clrscr();
                                kopfi();
                                break;

                        }
                  }

getchar();
}

//__________________________________________________________________________________________
//FUNKTIONEN
//__________________________________________________________________________________________

//Funktion fuer den Kopf
void kopfi(void)
{
cout &lt;&lt; &quot;\n\t::::: C++ Project by SASCHA WAGNER and DANIEL GRUBER :::::\n&quot;;//Header
cout &lt;&lt; &quot;\t\t\tCopyright and all Rights reserved\n\n&quot;;
cout &lt;&lt; &quot;\t\t       10 Minuten-Abschriftsauswertung v0.1 BETA&quot;&lt;&lt;endl;
   for(int x=0; x&lt;80; x++)           //Strichlinie HEADER
     {
       cout &lt;&lt; &quot;_&quot;;
     }
   cout &lt;&lt; &quot;\n&quot;;
}

//__________________________________________________________________________________________
//       Funktion zur erneuten Wiederholen einer Datei einlesen

void abfrage (int &amp;zeichen)
{
cout&lt;&lt;&quot;Moechten Sie eine weitere Datei zaehlen lassen?&quot;&lt;&lt;endl&lt;&lt;&quot;Fuer JA bestaedigen sie mit der &lt;0&gt; fuer NEIN &lt;1&gt;&quot;;
cin&gt;&gt; zeichen;

}
//__________________________________________________________________________________________

void auslesen (char *text, char *Dateiname, int &amp;zahl)
{
 //Variablen deklaration
 char loesch=0;           //Variable zum löschen
 char lauf[30];           //Variable Verzeichnis + Dateiname
 char pfad [27];          //Variable für das Verzeichnis

cout&lt;&lt;endl&lt;&lt;endl&lt;&lt; &quot;Welche Datei moechten Sie oeffnen&quot;&lt;&lt;endl&lt;&lt;&quot;Laufwerk(z.B. A:\\, C:\\, D:\\):&quot;&lt;&lt;endl;
gets(lauf);
cout&lt;&lt; &quot;Geben Sie den Pfad an:&quot;&lt;&lt;endl&lt;&lt;lauf;
gets(pfad);
strcat(lauf,pfad);
strcpy(Dateiname,lauf);

 for (int i =0; i&lt;10000;i++)
	{
	text[i] = loesch;
    }

FILE *ream;                                //Zum Öffnen
if ((ream = fopen(lauf, &quot;r&quot;)) != NULL)
{
fseek(ream,0,SEEK_SET);                    //Zeiger auf 0
fread (text,9999,1,ream) ;                 //Auslesen der Textdatei + Speichern
fclose(ream);                              //Schließt den Stream
}
else
{
 cout &lt;&lt; &quot;Datei konnte nicht gelesen werden oder ist nicht vorhanden&quot;;
 getchar();
}
zahl++;
}

//__________________________________________________________________________________________
void zaehlen (char *text,int &amp;zaehler, int &amp;zahlen, int &amp;Gbuch, int &amp;AltGr, int &amp;worter, int &amp;zbruch)
{
        //Variablen deklaration
        int b,c;
	for(int i=0; i&lt;10000;i++)
	{

	  b = text[i];
	  c = text [i-1];

          /*int bb;             //Zum herrausfinden der Ascii Codes
          bb=b;
          cout &lt;&lt; endl &lt;&lt; bb &lt;&lt; &quot; - &quot; &lt;&lt; b &lt;&lt;endl;*/

	   if ( b &gt;= 65 &amp;&amp; b&lt;=90 || b&gt;= 58 &amp;&amp; b&lt;60 ||b&gt;60 &amp;&amp; b&lt;= 93|| b&gt;= 33 &amp;&amp; b&lt;=34|| b&gt;= 36 &amp;&amp; b&lt;= 42|| b&gt;= 95  &amp;&amp; b&lt;=96|| b&gt;= 123 &amp;&amp; b&lt;126|| b==-114|| b==-103|| b==-102 || b == -77 || b == -78 || b == -75 || b == -128)
	   {
	   zaehler = zaehler +2;   //A bis Z Großbuchstaben Ascii
	   }
	   else if( b &gt;= 97 &amp;&amp; b&lt;=122 || b&gt;=48 &amp;&amp; b&lt;=57|| b==32|| b==35|| b&gt;= 43 &amp;&amp; b&lt;=46|| b== -31|| b== -124|| b==-108|| b==-127|| b == 9 || b == -28 || b == -4 || b == -10)
	   {
	    zaehler++;            //A-Z Kleinbuchstaben Ascii
	   }
	   if (b &gt;= 48 &amp;&amp; b &lt;= 57)
		{
		zahlen ++;       //Anzahl der Zahlen
		}
	   if(b &gt;= 65 &amp;&amp; b &lt;= 90)
		{
		Gbuch ++;        //Zeilenumbruch
		}
           if( b &gt;= 91 &amp;&amp; b&lt;=93 || b&gt;=123 &amp;&amp; b&lt;=126|| b&gt;=-4&amp;&amp; b&lt;= -3||b&gt;= 63 &amp;&amp; b&lt;=64|| b== -46 || b &gt;= -75 &amp;&amp; b &lt;= -78 || b == -128)
		{
		AltGr ++;       //Sonderzeichen mit AltGR
		}
	    if ( b==32 &amp;&amp; c != 32 || b==10 &amp;&amp; c != 32)
	    {
	    worter ++;         //Anzahl der Wörter
	    }
            if ( b == 10)
            {
            zbruch ++;
            }

	}

}
//__________________________________________________________________________________________
void ausgeben (int &amp;zaehler, int &amp;zahlen, int &amp;Gbuch, int &amp;AltGr, int &amp;worter, int &amp;zbruch)
{
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Anschlaege:\t&quot; &lt;&lt; zaehler;
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Zahlen:\t&quot; &lt;&lt; zahlen;
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Grossbuchstaben:\t&quot; &lt;&lt; Gbuch;
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Sonderzeichen:\t&quot; &lt;&lt; AltGr;
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Woerter:\t&quot; &lt;&lt; worter;
 cout &lt;&lt; endl &lt;&lt; &quot;Anzahl der Zeilenumbrueche:\t&quot; &lt;&lt; zbruch;

}

//__________________________________________________________________________________________

void zahlerlosch (int &amp;zaehler, int &amp;zahlen, int &amp;Gbuch, int &amp;AltGr, int &amp;worter, int &amp;zbruch)
{
zaehler= 0;                  //Setzt alle Zähler auf 0
zahlen = 0;
Gbuch = 0;
AltGr = 0;
worter = 1;
zbruch = 0;
}

//__________________________________________________________________________________________

void verzeichnis(void)
{

     //Variablen deklaration
    ERGEBNIS erg;                      //Variable für das speichern der ergebnisdatei
    FILE *Datei;                       //Variable zum speichern der ergebnisdatei
    ffblk Datein;                      //Variable für die Funktion findfirst() bzw. findnext()
    char Pfad1[256];                   //Variable zum zwischenspeichern des pfades
    char Pfad[256];                    //Variable zum eingeben des Pfades
    char Pfaderg[256];                 //Variable zum eingeben des Zielorts der Ergebnisdatei
    char Dateityp[20]=&quot;*.txt&quot;;         //Variable für den Dateityp
    char lauf[256];                    //Variable zum öffnen der mit findfirst() gefundenen datein
    char text[1000];                   //Variable zum Speichern des Textes
    int b,i=0;                         //Variablen zum zaehlen
    int done;                          //Variabel die für findfirst benötigt wird
    int zaehler=0;                     //Variable zum zählen der der textdatein
    int Anzahl=0;                      //Variable zum zaehlen der Datein im Verzeichnis

    cout &lt;&lt; &quot;Pfad angeben: &quot;;
    gets(Pfad);                        //Pfadeingabe für findfirst
    cout &lt;&lt; &quot;Pfad und Dateiname für die Ergebnisdatei: &quot;;
    gets(Pfaderg);                     //Pfadeingabe für die ERgebnisdatei

    strcpy(Pfad1,Pfad);                //zwischenspeichern des Pfads
    strcat(Pfad,Dateityp);             //anhängen des Dateityps an den Pfad für die findfirst funktion
    done = findfirst(Pfad,&amp;Datein,0);  //ausführen der findfirst funktion
    while (!done)
    {
          for (int i=0;i&lt;1000;i++)     //Variable Text mit NULL füllen
          text[i]=NULL;
          strcpy(lauf,Pfad1);          //kopierens des Pfades für das öffnen der gefunden datei
          strcat(lauf,Datein.ff_name); //anhängen des Dateinamen an den pfad
          FILE *ream;
          ream = fopen(lauf, &quot;r&quot;);     //öffnen der gefunden datei und auslesen
          fseek(ream,0,SEEK_SET);
          fread (text,999,1,ream) ;
          fclose(ream);                //schliesen des streams
          zaehler=0;                   //zaehler auf 0 setzten

          //Zaehlen der Anschläge in der Datei
          for(int i=0; i&lt;1000;i++)
          {
          b = text[i];

	   if ( b &gt;= 65 &amp;&amp; b&lt;=90 || b&gt;= 58 &amp;&amp; b&lt;60 ||b&gt;60 &amp;&amp; b&lt;= 93|| b&gt;= 33 &amp;&amp; b&lt;=34|| b&gt;= 36 &amp;&amp; b&lt;= 42|| b&gt;= 95  &amp;&amp; b&lt;=96|| b&gt;= 123 &amp;&amp; b&lt;126|| b==-114|| b==-103|| b==-102 || b == -77 || b == -78 || b == -75 || b == -128)
	   {
	    zaehler = zaehler +2;
	   }
	   else if( b &gt;= 97 &amp;&amp; b&lt;=122 || b&gt;=48 &amp;&amp; b&lt;=57|| b==32|| b==35|| b&gt;= 43 &amp;&amp; b&lt;=46|| b== -31|| b== -124|| b==-108|| b==-127|| b == 9 || b == -28 || b == -4 || b == -10)
	   {
	    zaehler++;
	   }
           }
           //Ende des Zaehlens
           Anzahl++;                  //Anzahl 1 hochzaehlen um die Datein zu zaehlen
           strcpy(erg.name,Datein.ff_name);   //kopieren des dateinamen in den struct zum speichern
           erg.anschlag = zaehler;            //kopieren der anschläge in den struct zum speichern
           if ((Datei = fopen(Pfaderg, &quot;w&quot;)) != NULL)  //öffnen des streams zum speichern der datei
           {
              fwrite(&amp;erg,sizeof(ERGEBNIS),1,Datei);   //speichern des dateinamen und der anschläge in die angegebenen ergebnisdatei
           }
           else
           {
               cout &lt;&lt; &quot;speichern fehlgeschlagen\t\t&quot;;
           }
           fclose (Datei);                             //schliesen des streams
           cout &lt;&lt; Datein.ff_name &lt;&lt; &quot;\t\t&quot; &lt;&lt; zaehler&lt;&lt; endl;     //ausgabe des dateinamen und der anschläge
          done = findnext(&amp;Datein);               //suchen der nächsten datei
    }

    cout &lt;&lt; &quot;Anzahl der Datein: &quot; &lt;&lt; Anzahl;       //ausgabe der anzahl der datein

    getchar();

}
</code></pre>
<p>das programm soll zeichen in einer TXT datei lesen können.<br />
hat bis gestern auch noch funktioniert nur gerade nach den auskommentieren und dann beim versuch was geht was nicht geht das im switch die 1 nicht.<br />
sprich die einzelne .txt datei auslesen.<br />
er kann nur txt auslesen</p>
<p>brauche dringend hilfe</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045751</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Wed, 26 Apr 2006 14:36:32 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomme zugriffsverletzung weiß aber nicht warum on Wed, 26 Apr 2006 14:49:00 GMT]]></title><description><![CDATA[<p>mit lesen meine ich das der mir anzeigt wie oft großbuchstaben,kleinbuchstaben,sonderzeichen usw. in der txt datei stehen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045763</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Wed, 26 Apr 2006 14:49:00 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomme zugriffsverletzung weiß aber nicht warum on Wed, 26 Apr 2006 15:01:26 GMT]]></title><description><![CDATA[<p>gruber2k2 schrieb:</p>
<blockquote>
<p>das programm soll zeichen in einer TXT datei lesen können.<br />
hat bis gestern auch noch funktioniert nur gerade nach den auskommentieren und dann beim versuch was geht was nicht geht das im switch die 1 nicht.<br />
sprich die einzelne .txt datei auslesen.<br />
er kann nur txt auslesen</p>
<p>brauche dringend hilfe</p>
<p>danke</p>
</blockquote>
<p>WHAT !? Bitte formuliere deine Frage mal deutlicher mit Groß- und Kleinschreibung und Satzzeichen. Vielleicht versteht man dann, was dein Problem ist.</p>
<p>edit: Du schreibst &quot;Zugriffsverletzung&quot;. Wie sehen die Fehlermeldungen aus? Was geht exakt nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045771</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Wed, 26 Apr 2006 15:01:26 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomme zugriffsverletzung weiß aber nicht warum on Wed, 26 Apr 2006 15:08:17 GMT]]></title><description><![CDATA[<p>es kommt die fehler meldung das die exe Datei ein problem verursacht</p>
<p>zugriffverletzung bei 0x000000000 usw....</p>
<p>Das Problem tritt aber nur auf, wenn ich nach dem Starten des Programmes die Option<br />
Auswerten einer Textdatei ausgewählt habe.<br />
DAnn lässt er mich den pfad der Textdatei eingeben und dann wenn er mir anzeigen sollte wieviele Zeichen in dieser Datei enthalten sind, taucht diese Fehler meldung auf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045773</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Wed, 26 Apr 2006 15:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomme zugriffsverletzung weiß aber nicht warum on Wed, 26 Apr 2006 15:10:26 GMT]]></title><description><![CDATA[<p>musste mal mit 'nem debugger rangehen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045776</guid><dc:creator><![CDATA[winheis]]></dc:creator><pubDate>Wed, 26 Apr 2006 15:10:26 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomme zugriffsverletzung weiß aber nicht warum on Wed, 26 Apr 2006 15:15:01 GMT]]></title><description><![CDATA[<p>@winheis: sobald ich an den Punkt ankomme taucht die Fehlermeldung auf und der Borland Builder verabschiedet sich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045779</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Wed, 26 Apr 2006 15:15:01 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomme zugriffsverletzung weiß aber nicht warum on Wed, 26 Apr 2006 15:44:03 GMT]]></title><description><![CDATA[<p>Du hättest ja auch mal mit dem Debugger in die Funktion Auslesen gehen können.<br />
Da steht das hier</p>
<pre><code class="language-cpp">for (int i =0; i&lt;10000;i++)
    {
    text[i] = loesch;
    }
</code></pre>
<p>text ist aber nur für 1000 Elemente deklariert.<br />
Was soll das ganze überhaupt? Zum leeren von text reicht auch text[0] = '\0';<br />
Was soll das hier<br />
for(int a=1; a&lt;2; a*=a)<br />
Soll das eine Endlosschleife sein?<br />
da wäre for(;;) einfacher.<br />
Du würdest dir das Leben viel einfacher machen, wenn du statt FILE und Co streams und statt char[] string verwenden würdest.<br />
Warum gets und nicht cin?<br />
Die Header sind ebenfalls veraltet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045799</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 26 Apr 2006 15:44:03 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomme zugriffsverletzung weiß aber nicht warum on Wed, 26 Apr 2006 15:50:18 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char text[10000];
</code></pre>
<p>so muss es ausschauen</p>
<p>nicht so wie</p>
<pre><code class="language-cpp">char text[1000];
</code></pre>
<p>es hat eine 0 gefellt da er bei der Funktion</p>
<pre><code class="language-cpp">for (int i =0; i&lt;10000;i++)
    {
    text[i] = loesch;
    }
</code></pre>
<p>hier geht er 10000 mal durch und löscht 10000 mal und da dort vorher nur 1000 freigegeben waren tauchte auch dort die fehlermeldung auf.</p>
<p>und wegen gets statt cin frage micht nicht das hat mein partner gemacht.<br />
ging so am schnellsten</p>
<p>und wir können noch net alles wissen haben erst sei ca nen halben jahr c++</p>
<p>Aber danke für die Hilfe hat mein Problem gelöst</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045806</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Wed, 26 Apr 2006 15:50:18 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomme zugriffsverletzung weiß aber nicht warum on Thu, 27 Apr 2006 09:56:51 GMT]]></title><description><![CDATA[<p>du kannst auch statt</p>
<pre><code class="language-cpp">char text[10000];

//...

for (int i =0; i&lt;10000;i++)
    {
    text[i] = loesch;
    }
</code></pre>
<p>Mit Symbolischen Konstanten (defines) arbeiten. Das verringert die Fehleranfälligkeit:</p>
<pre><code class="language-cpp">#define GroesseText    10000

char text[GroesseText];

//...

for (int i =0; i&lt;GroesseText;i++)
    {
    text[i] = loesch;
    }
</code></pre>
<p>Denk aber drann das hinter dem define kein Semikolon stehen darf. Die Symbolische Konstanten (GroesseText) wird nämlich beim Kompilieren durch den angegebenen Wert (10000) ersetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046213</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Thu, 27 Apr 2006 09:56:51 GMT</pubDate></item><item><title><![CDATA[Reply to Bekomme zugriffsverletzung weiß aber nicht warum on Thu, 27 Apr 2006 09:59:58 GMT]]></title><description><![CDATA[<p>Urgs...</p>
<p>In C++ benutzen wir da bitte (static) const int's für, und kein #define <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">const int groesseText = 10000;

char text[groesseText];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1046215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046215</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 27 Apr 2006 09:59:58 GMT</pubDate></item></channel></rss>