Ošetření vstupu prázdného řádku – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Ošetření vstupu prázdného řádku – C / C++ – Fórum – Programujte.comOšetření vstupu prázdného řádku – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Kid
~ Anonymní uživatel
3 příspěvky
28. 10. 2015   #1
-
0
-

Zdravím, potřeboval bych v programu pro převod binárního na dsetinné číslo nějak ošetřit zadávání prázdného řádku, tzn. pokud bude v konzoli prázdný řádek, aby se objevil výpis z chybou. Mám ošetřeno zadávání jiných znaků, mezery před číslem, ale nevím jak ošetřit ten prázdný řádek. Zkouším už kdoví jak dlouho, ale na nic funkčního jsem nepřišel...   

 Děkuji za pomoc!

#include<iostream>
#include<cmath>
#include<string>
using namespace std;

int main(){
cout << "Zadej cislo ve dvojkove soustave:" << endl;
char vstup[200];
char znak;
cin.getline(vstup, 200, '\n');

int i = 0;
int vypis = 0;

    while(vstup[i] != '\0' ){
        if (vstup[i] == '0' || vstup[i] == '1' ){
        vypis = 2 * vypis + vstup[i] - '0';
        ++i;
        }
        else {
            cout << "Nespravny vstup." << endl;
        return 0;
        }
    }
    cout << "Desitkove cislo je: " << vypis << endl;
    return 0;
}
Nahlásit jako SPAM
IP: 217.196.213.–
Reklama
Reklama
Hajrus0
Newbie
28. 10. 2015   #2
-
0
-

Ta hodnota se ti ukládá do řetězce. Pokud ten řetězec je prázdný, uživatel zadal prázdný řádek.

Nahlásit jako SPAM
IP: 78.45.224.–
Kid
~ Anonymní uživatel
3 příspěvky
28. 10. 2015   #3
-
0
-

#2 Hajrus
To vím, ale jak to udělám? Když tam dám podmínku pokud je roven ten string '/0', chová se to stejně jako předtím...

Nahlásit jako SPAM
IP: 217.196.213.–
Kid
~ Anonymní uživatel
3 příspěvky
28. 10. 2015   #4
-
0
-

#3 Kid
else if (vstup[i] == '0') { výpis chyby }; ... takhle to bohužel nic nezmění
 

Nahlásit jako SPAM
IP: 217.196.213.–
Hajrus0
Newbie
28. 10. 2015   #5
-
0
-

Protože ten vstup není řetězec, ale pole znaků. 

	string vstup;
	char znak;
	getline(std::cin, vstup);

	if (vstup == "")
	{
		std::cout << "nic" << std::endl;
	}
Nahlásit jako SPAM
IP: 78.45.224.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 90 hostů

Podobná vlákna

Ošetření vstupu. — založil jisla

Ošetření vstupu — založil Erlesh

Ošetření vstupu — založil Koja

Ošetření vstupu — založil Caken

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý