Bezeichner
-
Hallo ertsmal
Kann mir jemand sagen warum ich die Fehlermeldung
: error C3861: "löschen": Bezeichner wurde nicht gefunden.[cpp][code]
struct kiste {
Int32 eingabe;
Int32 hoehe;
Int32 breite;
Int32 laenge;
Int32 loeschen;
};
// die Funktion zum einelesen der Kisten
kiste einlesen(Int32 kistenNummer) {
// Eine globale STrukturvariable
kiste aKiste;
Console::Write("\nGeben Sie die Höhe der {0} Kiste ein = ",kistenNummer);
aKiste.hoehe=Convert::ToInt32(Console::ReadLine());
Console::Write("\nGeben sie die breite der {0} Kiste ein = ",kistenNummer);
aKiste.breite=Convert::ToInt32(Console::ReadLine());
Console::Write("\nGeben Sie die länge der {0} Kiste ein = ",kistenNummer);
aKiste.laenge=Convert::ToInt32(Console::ReadLine());
return aKiste;
}
// Berechnen des Volumens der KistenInt32 volumen(kiste aKiste) {
Int32 volWert;
volWert=aKiste.hoehe * aKiste.breite * aKiste.laenge;
return volWert;
}
// Löschen einer Kiste
Int32 loeschen(Int32 kistenNummer) {
Int32 kisteLoeschen;
kisteLoeschen=1;
Console::WriteLine(" Eingeben der Kisten Nummer zum löschen");
kisteLoeschen=Convert::ToInt32(Console::ReadLine());
return kisteLoeschen;
}int main(array<System::String ^> ^args)
{
Char funktionAuswahl;
Console::WriteLine(" Auswahl der Funktionen");Console::WriteLine(" a Eingabe der Daten für die Kisten");
Console::WriteLine(" b Löschen einer Kiste");Console::Write(" wählen Sie aus = ");
funktionAuswahl=Convert::ToChar(Console::ReadLine());// Die Auswahl der einzeoonen Funktionen
switch (funktionAuswahl) {
case 'a':
break;
case 'b':
break;
default:
Console::WriteLine(" Sie haben ein falsche Zeichen eingegeben");
}
/#################################################################/{
// Die lokale Vereinbarung der Strukturvariablen für die Kisten
kiste kleineKiste[100];
// Das einlesen der DAten über die Funktion
for (Int32 schleife=0; schleife <3; schleife++)
kleineKiste[schleife]=einlesen(schleife+1);
for (Int32 schleife=0; schleife <3; schleife++)
Console::WriteLine("Das Volumen der Kisten {0} ist: {1}",schleife+1, volumen(kleineKiste[schleife]));}
/###############################################################/
// Funktion eine Kiste löschen
kiste kleineKiste[3];
Int32 meineLoeschen;for (Int32 schleife=0; schleife <3; schleife++)
Console::WriteLine("Meine zu löschende Kiste{0} = {1}",schleife+1, löschen(kleineKiste[schleife]));}
return 0;
}C/C++
Vilen Dank im Voraus
-
Vermutlich weil C und verwandte Sprachen leichte Probleme mit Umlauten haben - und die Funktion deshalb loeschen() heißt.
(PS: sfds)
-
Int32 loeschen(Int32 kistenNummer) {
So heißt deine Funktion
und so willst du die aufrufen:
Console::WriteLine("Meine zu löschende Kiste{0} = {1}",schleife+1, löschen(kleineKiste[schleife]));
Also ein unterschied, VS Studio "kennt" die Funktion "löschen" nicht da sie bei dir "loeschen" heißt und desweiteren dürfen bei Variablen/Funktinonen wie CStoll schon sagte keine Umlaute sein.
-
RudiG schrieb:
Int32 loeschen(Int32 kistenNummer) {
So heißt deine Funktion
und so willst du die aufrufen:
Console::WriteLine("Meine zu löschende Kiste{0} = {1}",schleife+1, löschen(kleineKiste[schleife]));
Also ein unterschied, VS Studio "kennt" die Funktion "löschen" nicht da sie bei dir "loeschen" heißt und desweiteren dürfen bei Variablen/Funktinonen wie CStoll schon sagte keine Umlaute sein.
Hallo Rudi
Jetzt kommt diese
.\Kiste.cpp(84) : error C2664: 'loeschen': Konvertierung des Parameters 1 von 'kiste' in 'int' nicht möglich
warum
-
CStoll schrieb:
Vermutlich weil C und verwandte Sprachen leichte Probleme mit Umlauten haben...
RudiG schrieb:
und desweiteren dürfen bei Variablen/Funktinonen wie CStoll schon sagte keine Umlaute sein.
Das stimmt für C, C++ und ähnliche, aber unter .Net stimmt das definitiv nicht. Du kannst deine Variablen und Funktionen auch in Kanji schreiben oder kyrillische Zeichen verwenden, interessiert den Compiler net da der Unicode kennt.
-
@Talla: Danke für die Info, ich habe das leider nicht gewusst! (auch wenn das bei mir keinen Unterschied macht, da ich sowieso keine Umlaute verwenden werde!)
Heinerich schrieb:
.\Kiste.cpp(84) : error C2664: 'loeschen': Konvertierung des Parameters 1 von 'kiste' in 'int' nicht möglich
warumHey Heinerich,
du versuchst in dieser Anweisung
Console::WriteLine("Meine zu löschende Kiste{0} = {1}",schleife+1, löschen(kleineKiste[schleife]))
der Funktion eine komplette Struktur zu übergeben.
Die Funktion loeschen() kann aber nur einen Int32-Wert annehmen:
Int32 loeschen(Int32 kistenNummer) {
Du versuchst eine komplette Structur in einen Int32 zu "konvertieren" und das geht ja nicht.
Kannst du mir sagen wozu soll die Funktion überhaupt diesen Int32 Wert übergeben bekommen? Ich sehe keine einzige Anweisung in der du den übergebenen Int32-Wert "gebrauchst".
Ansonsten übergib der Funktion die schleife+1 (wobei ich darin keinen Sinn sehe) aber die Syntax stimmt dann wenigstens.
z. B.
Console::WriteLine("Meine zu löschende Kiste{0} = {1}",schleife+1, löschen(schleife+1))
-
Sag mal Heinerich,
hast Du Hilfe dabei, oder kriegst Du das allein hin.
Wie of hast Du hier schon gepostet?
Du weißt immer noch nicht wie man Code postet!
Dann knallst Du hier das ganze Forum mit Deiner blöden Kisten-Klatsche voll.
Schließe doch erstmal ein Thread ab.
Ich glaube C++ ist nix für Dich, mach was anderes oder Du bist zu faul selber mal ein bisschen nachzudenken.
Der letzte Fehler ist ja wohl offensichtlich.Das nervt...Alter
So blöd kann man allein gar nicht sein…Gruß, Franz
-
FranzXXX schrieb:
Sag mal Heinerich,
hast Du Hilfe dabei, oder kriegst Du das allein hin.
Wie of hast Du hier schon gepostet?
Du weißt immer noch nicht wie man Code postet!
Dann knallst Du hier das ganze Forum mit Deiner blöden Kisten-Klatsche voll.
Schließe doch erstmal ein Thread ab.
Ich glaube C++ ist nix für Dich, mach was anderes oder Du bist zu faul selber mal ein bisschen nachzudenken.
Der letzte Fehler ist ja wohl offensichtlich.Das nervt...Alter
So blöd kann man allein gar nicht sein…Gruß, Franz
Auch wenn ich auch dafür bin das man die Code-Task benutz und das bei ihm nicht funktioniert (aus welchem Grund auch immer!) muss man nicht sofort beleidigend werden
Es kann sein das die Fragen dir (persönlich) auf die Nerven gehen aber dann tue dir selber und uns einen Gefallen und poste nicht so einen Müll. Hast du schon mal etwas davon gehört: "Keine Antwort ist auch ne Antwort!". oder überließ den "Müll" doch einfach
Es gibt Leute die sich damit etwas schwer machen und da nicht so richtig durch blicken aber dazu gibt es Foren in denen man Hilfe erfragen kann und es gibt noch zum Glück Leute die bereit sind ein und die selbe Sache mehrmals zu erklären, bis man es versteht!
Wenn du nicht dazu gehörst dann poste einfach nicht