problem beim übergeben von werten in einem modularen programm



  • hey,
    bei mir wird in der 33. Zeile folgender fehler gemeldet:
    error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?
    das ist mir unverständlich, da das zählen der zeichen in nicht modularer form funktioniert.
    gruß...

    #include "stdafx.h"
    #include <stdio.h>
    #include <iostream>
    #include <stddef.h>
    #include <stdlib.h>
    
    #define NEUEZEILE printf("\n")
    void einlesen_des_string_ueber_tastertur(char vektor[100]);
    void bestimmen_der_laenge_des_string(char vektor[100], int laenge);
    
    void main(void)
        {
          //Dekleration
          char vektor[200];
    	  int laenge;
    	  // String einlesen!
    
    	  einlesen_des_string_ueber_tastertur( vektor);
    
    // Länge des Strings bestimmen und ausgeben
    	 bestimmen_der_laenge_des_string(vektor, laenge);
    
        }
    void einlesen_des_string_ueber_tastertur(char vektor[200])
    {printf("Inhalt des Vektors: ");NEUEZEILE;
    fgets(vektor,200,stdin);
    printf(" Vektor: %s", vektor);
    	  NEUEZEILE;}
    
    void bestimmen_der_laenge_des_string(char vektor[100], int laenge);
    {size_t length;
       laenge = strlen(vektor);
      NEUEZEILE;
      printf("Der String \"%s\" hat %d Zeichen\n",vektor, laenge);
    }
    


  • tja, das ist so eine sache mit copy&paste 😉

    => Semikolon in Zeile 32 weg machen



  • Du solltest die Parameterliste der Funktionen ändern.

    Du hast die Länge jetzt zwar fest verdrahtet, aber dann kannst du ja eigentlich auch nicht einen char vektor[200] an char vektor[100] übergeben.

    1. einlesen_des_string_ueber_tastertur sollte wissen wie lang der Platz ist und
    bestimmen_der_laenge_des_string soll ja erst die Länge ermitteln.

    2. laenge bekommst du so nicht zurück aus bestimmen_der_laenge_des_string.

    void einlesen_des_string_ueber_tastertur(char vektor[], int laenge)
    { printf("Inhalt des Vektors: \n");
      fgets(vektor,laenge,stdin);
      printf(" Vektor: %s\n", vektor);
    }
    
    size_t bestimmen_der_laenge_des_string(char vektor[]);
    { size_t length;
    
      length = strlen(vektor);
      printf("\nDer String \"%s\" hat %d Zeichen\n",vektor, length);
      return length;
    }
    

    Die main dazu:

    void main(void)
    {
      // Dekleration
      char vektor[200];
      int laenge;
      // String einlesen!
      einlesen_des_string_ueber_tastertur( vektor, 200);
    
      // Länge des Strings bestimmen und ausgeben
      bestimmen_der_laenge_des_string(vektor);       
    // oder
    // laenge = bestimmen_der_laenge_des_string(vektor); 
    }
    


  • Dann wäre da noch die Sache mit dem "void main":
    http://www.c-plusplus.net/forum/39346



  • OK, hab ein paar kleinigkeiten verändert, sodass es jetzt läuft!
    danke für die beiträge, sieht jetzt übrigens so aus!

    #include "stdafx.h"
    #include <stdio.h>
    #include <iostream>
    #include <stddef.h>
    #include <stdlib.h>
    
    #define NEUEZEILE printf("\n")
    void einlesen_des_string_ueber_tastertur(char vektor[200]);
    void bestimmen_der_laenge_des_string(char vektor[200], int laenge);
    
    void main(void)
        {
          //Dekleration
          char vektor[200];
    	  int laenge;
    	  // String einlesen!
    
    	  einlesen_des_string_ueber_tastertur( vektor);
    
    // Länge des Strings bestimmen und ausgeben
    	 bestimmen_der_laenge_des_string(vektor,200);
    
        }
    void einlesen_des_string_ueber_tastertur(char vektor[200])
    {printf("Inhalt des Vektors: ");NEUEZEILE;
    fgets(vektor,200,stdin);
    printf(" Vektor: %s", vektor);
    	  NEUEZEILE;}
    
    void bestimmen_der_laenge_des_string(char vektor[200], int laenge)
    {size_t length;
       laenge = strlen(vektor);
      NEUEZEILE;
      printf("Der String \"%s\" hat %d Zeichen\n",vektor, laenge);
    }
    

Anmelden zum Antworten