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, 3881 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 ...

Netzwerkmanagement
gelöst Extreme Switche Portbelegung abfragen (11)

Frage von Ghost108 zum Thema Netzwerkmanagement ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (35)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (15)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...

RedHat, CentOS, Fedora
Fedora, RedHat, Centos: DNS-Search Domain setzen (13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...