Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

int abfragen aber wie?

Frage Entwicklung C und C++

Mitglied: rhaziel

rhaziel (Level 1) - Jetzt verbinden

20.10.2008, aktualisiert 24.10.2008, 3887 Aufrufe, 3 Kommentare

Hallo ihr Forumsurfer ;D

Ich habe ein kleines Problem ich habe mir ein Kommandozeilen Programm geschrieben wo ich 3 Zahlen eingebe und diese werden dann von der klöeinsten zur größten geordnet ich habe meine Variablen in int bereich gesetzt :


#include <cstdlib>
#include <iostream>
#include <stdio.h>

int a;
int b;
int c;
int w = 0;

using namespace std;

int main(int argc, char *argv[])
{
while(w = 100)
{
printf("geben sie die erste Zahle ein:\n");
scanf("%d", &a);


printf("geben sie eine zweite Zahl ein:\n");
scanf("%d", &b);

printf("geben sie eine dritte Zahl ein:\n");
scanf("%d", &c);


if(a <= b)
{
if(b < c)
{
printf("%d , %d , %d\n", a , b , c);
}
}

if(a > b)
{
if( b >= c)
{

printf("%d , %d , %d\n", c , b , a);
}
}

if(b >= a)
{
if( a > c)
{

printf("%d , %d , %d\n", c , a , b);
}
}

if( b < a)
{
if( a <= c)
{
printf("%d , %d , %d\n", b , a , c);
}
}

if(a <= c)
{
if( c <= b)
{

printf("%d , %d , %d\n",a , c , b);
}
}

if(a > c)
{
if( c > b)
{

printf("%d , %d , %d\n",b , c , a);
}
}



}
system("PAUSE");
return EXIT_SUCCESS;
}


nun möchte ich gerne das wenn ich eine Zahl eingebe und diese nicht im interg vorhanden/definiert sind das mir angezeigt wird"ist keine gültige interg Zahl" und ich eine neue eingeben kann den zz hängt sich mein kleines Programm an Komma zahlen... auf.
Mitglied: rhaziel
21.10.2008 um 12:33 Uhr
ok ich habe mein problem gelöst
statt scanf nutze ich cin und gehe dan weiter mit
if ( cin.fail() )
...
else
...

nun würde ich gerne fragen ob ihr einen befehl kennt der das programm wieder von vorne beginnen lässt dh wenn ich anstatt einer int etwas anderes eingebe beendet sich mein programm ich möchte aber das er sofort wieder seine Variablen anfrage stellt
Bitte warten ..
Mitglied: Arano
24.10.2008 um 02:25 Uhr
Das könntest du etwa so machen (Pseudocode):
01.
while(1){ 
02.
      cin >> wert; 
03.
      if(wert != integer){ 
04.
            cout << "Ihre Eingabe war nicht vom Type INTEGER" << endl; 
05.
            continue; 
06.
07.
      cout << "Jawohl, so ists fein !" << endl; 
08.
      machAllesMoeglicheFunction(); 
09.
      break; 
10.
}
Die while-Schleife läuft ja immer und immer wieder durch, in ihr wird dann die Eingabe abgerufen. Danach wird geprüft ob die Eingabe nicht vom type INT ist, ist das der Fall, wird mit " ;continue;" der nächste Schleifendurchlauf gestartet. Solange, bis die Eingabe vom Type INT ist. In diesel Fall wird der Schleifendurchgang normal ausgeführt und am Ende mit " ;break;" komplett abgebrochen.

Hm... weiss gar nicht genau obs in C++ auch "continue" und "break" gib - aber warum nicht ^^

Gruß Arano
Bitte warten ..
Mitglied: rhaziel
24.10.2008 um 06:51 Uhr
Hallo Arano,


danke das du mir antwortest
so in etwa habe ich es auch hinbekommen
ich habe einfach in den befehl

if ( cin.fail() )

cin.ignore();
cin.clear();
continue;

den das hauptproblem war wie ich festgestellt habe das er die "falsche" cin eingabe durch die while schleife immer wiederhohlt hat und mit den beiden befehlen leere ich ja somit die eingabe
glaube es ging auch ohne continue will aber noch rausfinden was der befehl genau bewirkt ;D

also trotzdem danke für die antwort
Bitte warten ..
Ähnliche Inhalte
C und C++
Über C++ Konsoleninhalt abfragen (4)

Frage von freaktastisch zum Thema C und C ...

Datenbanken
gelöst MS SQL Abfragen und Formulare in Webseite einbinden (3)

Frage von Machello zum Thema Datenbanken ...

Batch & Shell
gelöst Registry per Batch abfragen und INI Einträge hinzufügen bzw. ändern (18)

Frage von kampen zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

LAN, WAN, Wireless
Rogue Access Point (20)

Frage von Axel90 zum Thema LAN, WAN, Wireless ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...

Webbrowser
Windows 7 unbeliebte Internetseite sperren (11)

Frage von Daoudi1973 zum Thema Webbrowser ...