Die Eingabezeichenfolge hat das falsche Format ????



  • Hallo,
    ich will gerade ein neues Array anlegen. Leider klappt das nicht.
    Es soll eine Nummer bekommen (vom User) und außerdem Länge, Breite, Höh und das Volumen speichern (das Volumen soll aber nicht vom User eingegeben werden).

    #include "stdafx.h"
    
    using namespace System;
    
    Int32 Kiste1[4];
    Int32 VolumenKiste1;
    Int32 Kiste2[4];
    Int32 VolumenKiste2;
    Int32 Kiste3[4];
    Int32 VolumenKiste3;
    Char Auswahl;
    
    int main(array<System::String ^> ^args)
    {
        Console::WriteLine("Funktion auswählen");
    	Console::WriteLine("1 - Neue Kiste anlegen");
    	Console::WriteLine("2 - xxx");
    	Console::WriteLine("3 - xxx");
    	Console::WriteLine("4 - xxx");
    	Console::WriteLine("5 - xxx");
    	Console::WriteLine("9 - xxx");
    	Console::WriteLine("");
    	Console::Write("Ihre Auswahl: ");
    	Auswahl=Console::Read();
    
    	switch (Auswahl) {
    	case '1':
    		 Console::WriteLine("Welche Kiste soll neu angelegt werden?");
    		 Console::WriteLine("Bitte geben Sie die Nummer für die Kiste ein: ");
    		 Kiste1[0]=Convert::ToInt32(Console::ReadLine());
    		 Console::WriteLine("Bitte geben Sie die Kisten Daten ein:");
    		 Kiste1[0]=Kiste1[0]=Convert::ToInt32(Console::ReadLine());
    		 Console::WriteLine("");
    		 Console::WriteLine("Breite: ");
    		 Kiste1[1]=Kiste1[0]=Convert::ToInt32(Console::ReadLine());
    		 Console::WriteLine("Höhe: ");
    		 Kiste1[2]=Kiste1[0]=Convert::ToInt32(Console::ReadLine());
    		 Console::WriteLine("Länge: ");
    		 Kiste1[4]=Kiste1[0]=Convert::ToInt32(Console::ReadLine());
    		 VolumenKiste1 = Kiste1[1] * Kiste1[2] * Kiste1[3];
    		 Console::WriteLine("-> Volumen {0}",VolumenKiste1);
    
    		break;
    
    	}
    
        return 0;
    }
    

    Die Fehlermeldung kommt erst wenn ich die auswahl 1 getroffen habe.
    Fehlermeldung:

    Eine nicht behandelte Ausnahme des Typs "System.FormatException" ist in mscorlib.dll aufgetreten.

    Zusätzliche Informationen: Die Eingabezeichenfolge hat das falsche Format.

    Ich hoffe jemand kann mir helfen

    MFG



  • Ich denke, der Fehler liegt hier

    Kiste1[0]=Kiste1[0]=Convert::ToInt32(Console::ReadLine());
    

    Den Sinn dieser Zeile kann ich nicht erkennen, ich denke mal, sie ist überflüssig, zumal du keine Daten einliest. Denn vorher gibst du die Nummer der Kiste ein - ok. Aber die Daten für das Volumen kommen erst später.

    Mfg

    Wilfried



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Das war eindeutig ein peinlicher kopier fehler... Ich hab immer und immer wieder drübergelesen.(aber nicht den fehler gefunden)
    Danke für die hilfe
    MFG



  • Hab jetzt alles ausgebessert. Läuft aber immer noch nicht.
    Immer noch der gleiche fehler...
    Du hast geschrieben das ich in der Zeile keine Daten einlese:

    Kiste1[0]=Kiste1[0]=Convert::ToInt32(Console::ReadLine());
    

    Ok. Ich habs jetzt geändert in

    Kiste1[0]=Convert::ToInt32(Console::ReadLine());
    

    Dennoch funktioniert es nicht.
    Es sollte aber doch in das Feld Kiste1[0] das reinspeichern was der User eingegeben hat. Doch sobald man dies Versucht kommt die Fehlermeldung...

    MFG
    Rene



  • hi,

    wenn Du die Fehlermeldung mal auch lesen würdest(im ganzen), hättest Du den Fehler wohl auch selber gefunden 😉
    habe mal den Passus geändert

    und nur mal so als Frage, solltest Du nicht ein Array benutzen???
    Warum machst Du alle Variablen "global"???

    es sind aber immer noch entscheidende Fehler vorhanden bis Dein Programm funktioniert.

    int main(array<System::String ^> ^args) 
    { 
    	Int32 Auswahl; 
    
    	Console::WriteLine("Funktion auswählen"); 
    	Console::WriteLine("1 - Neue Kiste anlegen"); 
    	Console::WriteLine("2 - xxx"); 
    	Console::WriteLine("3 - xxx"); 
    	Console::WriteLine("4 - xxx"); 
    	Console::WriteLine("5 - xxx"); 
    	Console::WriteLine("9 - xxx"); 
    	Console::WriteLine(""); 
    	Console::Write("Ihre Auswahl: "); 
    	Auswahl = Convert::ToInt32(Console::ReadLine()); 
    
    	switch (Auswahl) { 
    	case 1:
    


  • Vielen Dank für die Hilfe!
    Habs geschafft. Keine Ahnung warum ich die Variablen nicht lokal gemacht hab...-.-
    Danke aufjeden fall

    MFG
    RENE


Anmelden zum Antworten