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, 3866 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
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows 7
Computer OU auslesen bzw. abfragen (2)

Frage von mexx991 zum Thema Windows 7 ...

Netzwerkgrundlagen
gelöst Beliebigen Zeitserver auf Zeit abfragen (4)

Frage von blade999 zum Thema Netzwerkgrundlagen ...

Windows Netzwerk
gelöst Alle Drucker in verschiedenen Netzen Abfragen (4)

Frage von ChrisIO zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...