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, 3876 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Monitoring
gelöst Nagios Plugin Datum in Dateiname abfragen (2)

Frage von itazubii zum Thema Monitoring ...

Windows Server
Status RDP Session via Webseite abfragen (1)

Frage von NetMare zum Thema Windows Server ...

Sonstige Systeme
gelöst Active Directory Abfragen konfigurieren oder andere erstllen als vorhanden (3)

Frage von SnvRCalle zum Thema Sonstige Systeme ...

Heiß diskutierte Inhalte
TK-Netze & Geräte
gelöst Telefonanlage gesucht (35)

Frage von Xaero1982 zum Thema TK-Netze & Geräte ...

Erkennung und -Abwehr
Virenschutz - Meinungen (29)

Frage von honeybee zum Thema Erkennung und -Abwehr ...

Windows 10
gelöst Welches OS für Firmengeräte? (20)

Frage von MarkusVH zum Thema Windows 10 ...

Exchange Server
SBS2011: POP3-Connector 10 MB Grenze Email Benachrichtigung (20)

Frage von bogi1102 zum Thema Exchange Server ...