Programm stürzt ab
-
Guten Tag,
nach dieser Funktion:
unsigned char Eingabe() { cout << "\n\n"; cout << "Geben Sie ein was Sie machen wollen. \n\n"; cout << "1 Backup \n"; cout << "2 Wiederherstellen \n"; cout << "3 Synchronisieren \n"; cout << "Eingabe: "; cin >> Aufgabe; return 0; }
sollte eigentlich wenn man 1 eingibt fürs backup per if
if(Aufgabe==1) { if(Directory::Exists(Backupordner + "\\Musik")==false) { Directory::CreateDirectory(Backupordner + "\\Musik"); Directory::Move(Laufwerksname, Backupordner + "\\Musik\\"); Directory::Delete(Laufwerksname); cout << "Backup beendet. Geben Sie 1 ein um weiterzumachen. Geben Sie 2 ein um Aufzuhören."; cin >> Beendet; if(Beendet==1) { StartAuswahl(); } if(Beendet==2) { void Close(); } } if(Directory::Exists(Backupordner + "\\Musik")==true) { Directory::Move(Laufwerksname, Backupordner + "\\Musik\\"); Directory::Delete(Laufwerksname); cout << "Backup beendet. Geben Sie 1 ein um weiterzumachen. Geben Sie 2 ein um Aufzuhören."; cin >> Beendet; if(Beendet==1) { StartAuswahl(); } if(Beendet==2) { void Close(); } } }
Geprüft werden ob ein ordner dort ist und wenn nicht, soll er erstellt werden. Aber ich denke ihr wisst was ich mit diesem code vorhabe. Jedoch stürzt, sobald ich die 1 eingebe fürs backup, dass programm ab. ich weiß nicht was ich falsch gemacht habe. Jetzt würde ich gerne wissen was ich falsch gemacht habe.
P.S.: Hier ist nochmal der komplette code.
#include <istream> #include <ostream> #include <iostream> #include <string> #include <string.h> using namespace std; using namespace System; using namespace System::IO; using namespace System::Collections; int Start; String^ Laufwerksname; String^ Backupordner; unsigned char Aufgabe; int Beendet; int StartAuswahl() { cout << "Schreiben Sie 1 wenn Sie eine Anleitung fuer dieses Programm haben wollen.\n"; cout << "Schreiben Sie 2 wenn Sie das Backup starten wollen.\n"; cout << "Eingabe: "; cin >> Start; cout << "\n\n"; return 0; } String^ PfadAuswahl() { cout << "Geben Sie bitte den Pfad an, wo der MP3-Player zu finden ist: "; cin >> Laufwerksname; cout << "Geben Sie bitte den Pfad an, wo dass Backup gespeichert werden soll: "; cin >> Backupordner; cout << "\n\n"; cout << "Ihr eingegebener Pfad des MP3-Players lautet: " << Laufwerksname << endl; cout << "Ihr eingegebener Pfad des Backups lautet: " << Backupordner << endl; return 0; } unsigned char Eingabe() { cout << "\n\n"; cout << "Geben Sie ein was Sie machen wollen. \n\n"; cout << "1 Backup \n"; cout << "2 Wiederherstellen \n"; cout << "3 Synchronisieren \n"; cout << "Eingabe: "; cin >> Aufgabe; return 0; } int main() { StartAuswahl(); if(Start==1) { cout << "Mit diesem Programm koennen Sie die Musik von ihrem Computer automatisch und" << endl << "ohne Probleme zu ihrem MP3-Player und zurueck kopieren. Geben Sie nachdem Sie" << endl << "diese Anleitung gelesen haben zu erst denn Pfad an wo Sie ihren MP3-Player" << endl << "finden. Aussehen tut der Pfad ca. so: F:\\. Dafuer muss jedoch die Musik direkt" << endl << "im MP3-Player liegen und darf nicht in einem Ordner liegen. Wuerde die Musik in" << endl << "einem Ordner liegen der Musik hei\341t muessten Sie F:\\Musik benutzen. Da auf" << endl << "jedem Computer der" << endl << "Laufwerksbuchstabe anders ist gehen Sie bitte auf Computer/Arbeitsplatz und" << endl << "suchen dort ihren MP3-Player. Dort steht dann der Laufwerksbuchstabe daneben." << endl << "Nachdem Sie den MP3-Player Pfad angegeben haben muessen Sie einen Pfad angeben" << endl << "wo ihre Musik als Backup gespeichert wird. Dafuer verwenden Sie am besten ihren" << endl << "Lokalen Datentraeger C:\\. Nun muessen Sie angeben was Sie mit diesem Programm" << endl << "machen wollen. Beim ersten Start dieses Programms sollten Sie zu erst 1 und" << endl << "dann 2 machen. Danach reicht es nur noch die Synchronisation 3 auszufuehren.\n\nErklaerung der 3 Befehle.\nBackup: In diesem Schritt wird die Musik von ihrem MP3-Player auf ihren" << endl << "Computer in einen Ordner Namens Backup gespielt.\nWiederherstellung: In diesem Schritt wird die Musik wieder auf ihren MP3-Player" << endl << "in einen Ordner Namens Musik gespielt.\nSynchronisierung: Hier wird einfach nur die Musik vom Computer auf denn" << endl << "MP3-Player gespielt.\n\n\n"; } PfadAuswahl(); Eingabe(); if(Aufgabe==1) { if(Directory::Exists(Backupordner + "\\Musik")==false) { Directory::CreateDirectory(Backupordner + "\\Musik"); Directory::Move(Laufwerksname, Backupordner + "\\Musik\\"); Directory::Delete(Laufwerksname); cout << "Backup beendet. Geben Sie 1 ein um weiterzumachen. Geben Sie 2 ein um Aufzuhören."; cin >> Beendet; if(Beendet==1) { StartAuswahl(); } if(Beendet==2) { void Close(); } } if(Directory::Exists(Backupordner + "\\Musik")==true) { Directory::Move(Laufwerksname, Backupordner + "\\Musik\\"); Directory::Delete(Laufwerksname); cout << "Backup beendet. Geben Sie 1 ein um weiterzumachen. Geben Sie 2 ein um Aufzuhören."; cin >> Beendet; if(Beendet==1) { StartAuswahl(); } if(Beendet==2) { void Close(); } } } if(Aufgabe==2) { if(Directory::Exists(Laufwerksname + "\\Musik")==false) { Directory::CreateDirectory(Laufwerksname + "\\Musik"); Directory::Move(Backupordner + "\\Musik", Laufwerksname); cout << "Wiederherstellung beendet. Geben Sie 1 ein um weiterzumachen. Geben Sie 2 ein um Aufzuhören."; cin >> Beendet; if(Beendet==1) { StartAuswahl(); } if(Beendet==2) { void Close(); } } if(Directory::Exists(Laufwerksname + "\\Musik")==true) { Directory::Move(Backupordner + "\\Musik", Laufwerksname); cout << "Wiederherstellung beendet. Geben Sie 1 ein um weiterzumachen. Geben Sie 2 ein um Aufzuhören."; cin >> Beendet; if(Beendet==1) { StartAuswahl(); } if(Beendet==2) { void Close(); } } } if(Aufgabe==3) { Directory::Move(Laufwerksname + "\\Musik", Backupordner); Directory::Move(Backupordner + "\\Musik", Laufwerksname); cout << "Synchronisation beendet. Geben Sie 1 ein um weiterzumachen. Geben Sie 2 ein um Aufzuhören."; cin >> Beendet; if(Beendet==1) { StartAuswahl(); } if(Beendet==2) { void Close(); } } }
-
Das ist kein C++. Das sieht nach C++/CLI aus.
-
Naja dass liegt wohl daran dass ich noch ein Anfänger bin. Hab erst gestern ein Buch zu ende gelesen und dann dieses Programm angefangen. Die Kopier Befehle hatte ich dann von msdn.com .
-
minnimichi schrieb:
Guten Tag,
nach dieser Funktion:
unsigned char Eingabe() { cout << "\n\n"; cout << "Geben Sie ein was Sie machen wollen. \n\n"; cout << "1 Backup \n"; cout << "2 Wiederherstellen \n"; cout << "3 Synchronisieren \n"; cout << "Eingabe: "; cin >> Aufgabe; return 0; }
du gibst von einer const char funktion ein int zurück
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) 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.
-
.< okay. dies wurde jetzt behoben. Allerdings Stürzt dass Programm noch immer ab.
-
Im MSDN steht doch wie man die Funktion anwenden muss, sogar mit Beispiel?
@Gucky
Das ist in Ordnung, unabhängig ob unsigned oder const davor steht. Abgesehen davon, dass es Quatsch ist, weil es nichts macht.
-
ich weiß. ich habe diese beispiele ja auch so gut wie möglich übernommen. Aber irgentwie funktioniert es trotzdem nicht.
-
Wenn du die Ausnahmebehandlung mit übernommen hättest wüsstest du warum dein Programm abstürzt.
-
ich habe grade bei google geuscht was du damit meinst. aber dass verstehe ich alles nicht. könntest du mir ein beispiel geben wie so etwas aussieht? dann kann ich bei msdn die ausnahmebehandlungen suchen.
-
Die ist doch im Beispiel mit drin!
void Move( String^ sourcePath, String^ destinationPath ) { try { System::IO::Directory::Move( sourcePath, destinationPath ); System::Console::WriteLine( "The directory move is complete." ); } catch ( ArgumentNullException^ ) { System::Console::WriteLine( "Path is a null reference." ); } catch ( System::Security::SecurityException^ ) { System::Console::WriteLine( "The caller does not have the \HelloServer' required permission." ); } catch ( ArgumentException^ ) { System::Console::WriteLine( "Path is an empty String, \HelloServer' contains only white spaces, \HelloServer' or contains invalid characters." ); } catch ( System::IO::IOException^ ) { System::Console::WriteLine( "An attempt was made to move a \HelloServer' directory to a different \HelloServer' volume, or destDirName \HelloServer' already exists." ); } }
Du fängst mit
catch
die Ausnahmen (Exceptions). Wenn du sie nicht fängst, fängt das BS sie für dich. Und das heißt für dich dein Programm ist zu Ende, oder abgestürzt. Kann auch sein, dass das BS sie nicht fängt. Aber beendet wird dein Programm in jedem Fall. Wenn du dich nicht selber um die Ausnahme kümmerst.
-
danke. du hast mir... denn Ar*** gerettet. ich muss darüber nämlich ein referat halten. jedoch nur mit einem funktionierenden programm. allerdings hatten wir unterschiedliche msdn seiten glaube ich. ich hatte die code-schnipsel von hier: http://msdn.microsoft.com/de-de/library/system.io.directory(v=VS.100).aspx
Ausserdem wie schon gesagt. Dass ist mein erstes Programm und ich habe erst vor kurzem ein C++ Buch gelesen. Und dort stand darüber halt nichts drin.
Aber nochmals. Danke.