Program so vstupom – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Program so vstupom – C / C++ – Fórum – Programujte.comProgram so vstupom – C / C++ – Fórum – Programujte.com

 

ukulele
~ Anonymní uživatel
111 příspěvků
20. 11. 2014   #1
-
0
-

Mam taky kod ktory nie je uplny ale mam otazku.

Ako dokazem precitat z klavesnice text (napr. BA ktoremu zodpoveda cislo 10) potom ho ulozim do pola znak1 a chcem ten text ulozit do premennej int cislo v tvare 10 dakujem

#include<iostream>
#include<string>

using namespace std;

int main(){

	cout << "Zadajte 2 pismena:" << endl;

	char znak1[3];
	char znak2[3];
	cin >> znak1 >> znak2;

	cout << "\n";

        int cislo = 0;
	int cislo2 = 0;
	int poms = 0;
	int pomr = 0;
	int pomn = 0;
	int pomd = 0;

	for (int i = 0; i<3; i++){
	switch (znak1[i]){
	case 'A':
	case 'a':
		cislo = 0;
		break;
	case 'B':
	case 'b':
		cislo = 1;
		break;
	case 'C':
	case 'c':
		cislo = 2;
		break;
	case 'D':
	case 'd':
		cislo = 3;
		break;
	case 'E':
	case 'e':
		cislo = 4;
		break;
	case 'F':
	case 'f':
		cislo = 5;
		break;
	case 'G':
	case 'g':
		cislo = 6;
		break;
	case 'H':
	case 'h':
		cislo = 7;
		break;
	case 'I':
	case 'i':
		cislo = 8;
		break;
	case 'J':
	case 'j':
		cislo = 9;
		break;
	default:
		cout << "Zadali ste zle pismeno." << endl;
		break;
	}
Nahlásit jako SPAM
IP: 158.193.86.–
ukulele
~ Anonymní uživatel
111 příspěvků
20. 11. 2014   #2
-
0
-

Este raz mozno zrozumitelnejsie

Zadam text pomocou klavesnice (napr. BA ktoremu zodpoveda cislo 10 alebo cd ktoremu zodpoveda 23...) potom ho ulozim do pola znak1 a potom chcem ten text pomocou switchu prekonvertovat na dane cislo 10,23... a ulozit do premennej int v tvare 10,23... dakujem

Nahlásit jako SPAM
IP: 158.193.86.–
ondrej39+1
Věrný člen
21. 11. 2014   #3
-
0
-

#2 ukulele

Nejsnazší to bude přes strtol. Vůbec nemá smysl ve switchi přiřazovat dané číslo rovnou do proměnné číslo, tak z jednociferného čísla nikdy dovuciferné neuděláš, dojde k přepsání hodnoty.

Řešení může být například takovéto:

#include "stdafx.h"
#include <iostream>


int _tmain(int argc, _TCHAR* argv[])
{
	using namespace std;	

	char defArray[3] = ""; // definice pole a jeho inicializace
	const int velikost = (sizeof(defArray) / sizeof(char)); // dynamické zjištění velikosti pole
	
	if (velikost - 1 == 1) {
		cout << "Zadej " << velikost - 1 << " pismeno: "; // odečítá se 1, protože pole musí mít místo na zarážku, takže uživatel musí zadat o jedno písmeno méně
		cin >> defArray; // uživatel zadá počet vyžádaných písmen
	}
	else if (velikost - 1 > 1 && velikost - 1 <= 4) {
		cout << "Zadej " << velikost - 1 << " pismena: ";
		cin >> defArray;
	}
	else {
		cout << "Zadej " << velikost - 1 << " pismen: ";
		cin >> defArray;
	}	
	
	char assistArray[velikost];	// tvorba pomocného pole o potřebné velikosti

	for (int i = 0; i < velikost; i++){
		switch (defArray[i]){
		case 'A':
		case 'a':
			assistArray[i] = '0';
			break;
		case 'B':
		case 'b':
			assistArray[i] = '1';
			break;
		case 'C':
		case 'c':
			assistArray[i] = '2';
			break;
		case 'D':
		case 'd':
			assistArray[i] = '3';
			break;
		case 'E':
		case 'e':
			assistArray[i] = '4';
			break;
		case 'F':
		case 'f':
			assistArray[i] = '5';
			break;
		case 'G':
		case 'g':
			assistArray[i] = '6';
			break;
		case 'H':
		case 'h':
			assistArray[i] = '7';
			break;
		case 'I':
		case 'i':
			assistArray[i] = '8';
			break;
		case 'J':
		case 'j':
			assistArray[i] = '9';
			break;
		default:
			cout << "Zadali ste zle pismeno." << endl;
			break;
		}
	}

	int hodnota;
	char *pEnd;
	hodnota = strtol(assistArray, &pEnd, 10);
	
	cout << "\n\nVase hodnota:\n";
	cout << hodnota << endl;
}
Nahlásit jako SPAM
IP: 213.226.234.–
Inject all the dependencies!
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, 50 hostů

Podobná vlákna

3D program — založil Bengo

3D program now — založil vancutan

Program — založil Jan Burant

Moderátoři diskuze

 

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