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); }