Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: this_feature_currently_requires_accessing_site_using_safari
€: Meine kurze Antwort wäre, dass C alles kann, was C++ kann, nur besser.
long lDezi;
// EINGABE + ÜBERPRÜFUNG
cout << "Geben Sie bitte die Dezimalzahl ein\n\n";
string stest;
getline(cin, stest);
// ÜBERPRÜFUNG
for (int iA = 0;iA < stest.size();iA++)
{
if ((stest[iA] < 48)||(stest[iA] > 57))
{
cout << "Falsche Eingabe, bitte erneut eingeben\n\n";
getline(cin, stest);
iA = -1;
}
}
// ÜBERPRÜFUNG ENDE
lDezi = atoi(stest.c_str()); // mit lDezi wird weitergerechnet
#include <iostream>
#include <string>
using namespace std;
void dual2dezimal();
void dezimal2dual();
int main()
{
char cWieder;
cWieder = 'J';
do
{
// EINGABE UND ÜBERPRÜFUNG
string sAbf;
cout << "Geben Sie bitte eine Zahl ein:\n";
cout << "1 --> Dual zu Dezimal\n";
cout << "2 --> Dezimal zu Dual\n";
cout << "3 --> Beenden\n\n";
getline(cin, sAbf);
for (int iA = 0;iA < sAbf.size();iA++)
{
if ((sAbf[iA] < 49)||(sAbf[iA] > 51))
{
cout << "Falsche Eingabe, bitte erneut eingeben\n\n";
getline(cin, sAbf);
iA = -1;
}
}
int iAbf = atoi(sAbf.c_str());
switch(iAbf)
{
case 1:
fflush(stdin);
cout << endl;
dual2dezimal();
break;
case 2:
fflush(stdin);
cout << endl;
dezimal2dual();
break;
case 3:
return 0;
}
// EINGABE UND ÜBERPRÜFUNG ENDE
cout << "Wollen Sie das Programm wiederholen?(J|N): ";
cin >> cWieder; // Abfragen wiederholung?
cout << endl;
}while ((cWieder == 'j')||(cWieder == 'J')); // Schleife-Wiederholung.
return 0;
}
void dual2dezimal()
{
string sdual;
int iB, iMulti, iGes, iC, iHilfe, iA;
cout << "Geben Sie bitte die Dualzahl ein:\n\n";
getline (cin, sdual);
iMulti = 1;
iGes = 0;
iA = 0;
// EINGABE-ÜBERPRÜFUNG
while (iA < sdual.size())
{
iC = (sdual[iA] - '0');
iA = iA + 1;
if ((iC < 0)||(iC > 1))
{
cout << endl << "Falsche Eingabe\n\n";
cout << "Geben Sie bitte die Dualzahl ein:\n\n";
getline (cin, sdual);
iA = 0;
}
}
// ENDE EINGABE-ÜBERPRÜFUNG
// UMWANDLUNG
for( int iA = 0;iA < sdual.size();iA++)
{
iB = (sdual[(sdual.size() - (iA + 1))] - '0') * iMulti;
iMulti = iMulti * 2;
iGes = iGes + iB;
}
// ENDE UMWANDLUNG
cout << endl << "Ihre Dezimalzahl lautet: " << iGes << endl << endl;
}
void dezimal2dual()
{
long lDezi;
int iA, ix[99999], iy;
// EINGABE + ÜBERPRÜFUNG
cout << "Geben Sie bitte die Dezimalzahl ein\n\n";
string stest;
getline(cin, stest);
// ÜBERPRÜFUNG
for (int iA = 0;iA < stest.size();iA++)
{
if ((stest[iA] < 48)||(stest[iA] > 57))
{
cout << "Falsche Eingabe, bitte erneut eingeben\n\n";
getline(cin, stest);
iA = -1;
}
}
// ÜBERPRÜFUNG ENDE
lDezi = atoi(stest.c_str()); // mit lDezi wird weitergerechnet
// EINGABE + ÜBERPRÜFUNG ENDE
// UMRECHNUNG
do
{
ix[iy]=lDezi%2;
lDezi = lDezi / 2;
iy=iy+1;
}while(lDezi > 0);
// UMRECHNUNG ENDE
// AUSGABE IN UMGEKEHRTER REIHENFOLGE
cout << "Ihre Dualzahl lautet: ";
for(iA = 0;iA <= iy;iA++)
{
cout << ix[iy - iA];
}
cout << endl << endl;
// AUSGABE IN UMGEKEHRTER REIHENFOLGE ENDE
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LENGTH 128
int main(void) {
char *input, c;
int i, nochmal = 0;
if((input = malloc(LENGTH)) == NULL) {
fprintf(stderr, "malloc() failed.\n");
return EXIT_FAILURE;
}
do {
fgets(input, LENGTH, stdin);
i = nochmal = 0;
while(c = input[i++]) {
if(((c < 0x30) || (c > 0x39)) && (c != 0x0a)) {
fprintf(stderr, "Keine Zahl :(\n");
nochmal = 1;
break;
}
}
} while (nochmal);
printf("Eine Zahl :/\n");
free(input);
return EXIT_SUCCESS;
}