Error C3861: Bezeichner wurde nicht gefunden.



  • also ich hab nun schon 5 stunden gegoogled und rumprobriert ich bekomme diesen code einfach nicht kompiliert! könnt ihr mir sagen was ich falsch gemacht habe?

    ziel ist es die zeichen des strings auf ein array einzeln zu verteilen...

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main(void) {
    
    string input = "test";
    hashit(input);
    
    return(0);
    }
    
    int hashit(string f_pw_hash) {
    
    	// Variablen
    	string f_input; // Input (Max.32 Zeichen)
    	string f_input_round; 
    	string f_input_array[32]; // Array.Input (Max.32 Felder)
    	int f_input_length; // Input.Laenge 
    	int f_round = -1; // Schleifen-Zaehler
    	int f_round_real = 0; // Schleifen-Zaehler_Real
    
    	// Schleife, um jedes Zeichen einzeln im Quelltext zu speichern :
    	f_input = f_pw_hash;
    	f_input_length = f_input.length(); // Input.Laenge ermitteln
    	do
    	{
    		f_input_round = f_input;
    		f_round++;
    		f_round_real++;
    		f_input_array[f_round] = f_input_round.substr(f_round,1);
    
    		cout << f_input_array[f_round] << endl;
    
    	}
    	while(f_round_real < f_input_length);
    	//-------------------------- Schleife -----------------------------
    
    return(0);
    }
    


  • hiho,
    der Compiler kennt deine Funktion hashit nicht.

    Er geht deinen Quellcode von oben nach unten durch und kommt an diese Stelle,

    hashit(input);
    

    doch eine solche Funktion ist ihm bisher nocht nicht begegnet.

    Das heißt, du musst dem Compiler deine Funktion erst bekannt machen, indem du vor die main-Funktion dies hier schreibst.

    int hashit(string);
    


  • oh ja danke 😃



  • Hallo, ich bin erst gerade frisch in c++ eingestiegen und brauche mal ein bisschen Unterstützung, da Visual Studio meinen Quellcode nicht compilieren will, da es irgendwie Probleme mit randomNumber() gibt.

    Main.cpp

    #include <iostream>
    #include <cstdlib>
    #include "test.h"
    using namespace std;
    
    int main() {
    	unsigned int a;
    	unsigned int b;
    	cout << "Gib zwei Zahlen ein!" << endl;
    	cout << "Zahl 1:" << endl;
    	cin >> a;
    	cout << "Zahl 2:" << endl;
    	cin >> b;
    	cout << "Die Zufällige Zahl lautet: " << endl;
    	randomNumber(a, b); //"randomNumber": Bezeichner wurde nicht gefunden.
    
    	return 0;
    }
    

    Test.h

    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    
    void randomNumber(int, int);
    

    Test.cpp

    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    
    void randomNumber(int x, int y) {
    	srand(time(0));
    	cout << x + (rand() % y);
    }
    


  • Hast du zu viele test.h rumliegen?

    Welchen Sinn hat es, diesen alten Beitrag auszugraben?

    Vollständige Fehlermeldung des Compilers!



  • Nekrophilie ist hier nicht gerne gesehen. Der Thread ist sechs Jahr alt.

    Daher gilt: Neuer Fall, neuer Thread

    Du musst alle deine .cpp Dateien mit in das Projekt aufnehmen. (Irgendwas mit Add Source im Project Menue)



  • Außerdem: srand soll nur einmal im Programm aufgerufen werden, nicht einmal pro Funktionsaufruf.

    Und warum Modulo böse ist, um den Bereich von Zufallszahlen einzuschränken, erklärt dir STL hier: https://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful



  • hab den fehler gefunden, er präprozessor #include "test.h" war nicht ganz korrekt.
    Trotzdem danke für die Antworten


Anmelden zum Antworten