Cin, cin.get(),...atď – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Cin, cin.get(),...atď – C / C++ – Fórum – Programujte.comCin, cin.get(),...atď – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
16. 8. 2011   #1
-
0
-

Zdravím Vás, C++ sa venujem už pár mesiacov, najskôr v škole a teraz ako voľnočasová aktivita a narazil som na niečo čo ma mätie. Konkrétne mám problém s objektom "cin", v škole sme ho vždy používali len vo forme cin >> vstup; a všetko fungovalo, ale začal som si robiť rôzne zadania a cvičenia a zistil som, že sa používa aj forma cin.get(), cin.getline(), getline(cin,...) tieto som ako tak pochopil na základe metódy pokus/omyl, ale neide mi do hlavy použitie takéhoto zápisu: (cin >> vstup;).get() ... vie mi niekto prosím po lopate vysvetliť, kedy použiť jednotlivé metódy objektu cin?

Vďaka :)

Nahlásit jako SPAM
IP: 195.98.9.–
KIIV
~ Moderátor
+43
God of flame
16. 8. 2011   #2
-
0
-

#1 PeterSura
tezko radit - musis vedet co chces a podle toho pak pouzit (samozrejme to predpoklada ze mas prehled co co umi - tj. musis si o tom aspon neco letmo procist)

Nektere zapisy jsou pak vesmes aliasy (napriklad zmineny cin+getline). Operatory  >> u cout a << u cin pak vraceji zase cin (jinak by se nedalo zretezit - tj.  cin >> a >> b >> c; ) tj.   cin >> a; vlastne vrati zase objekt cin - tim s vysledkem muzes podle toho zachazet:  (cin >> vstup).get() je vesmes nacteni jedne hodnoty do vstup a get() by mel pak nacist jeden znak za tim.

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
16. 8. 2011   #3
-
0
-

 Tu je napr. jeden fragment kódu, kde mi to nie je jasné:

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

struct spolocnost {
	string meno;
	double prispevok;
};

int main()
{
	int PocetDarcov, VelkyPatroni=0, Patroni=0;

	cout << "Zadajte pocet darcov: ";
	(cin >> PocetDarcov).get();
	
	spolocnost *darcovia = new spolocnost [PocetDarcov];

	for (int i = 0; i < PocetDarcov; i++)
	{
		cout << "Darca c." << i+1 << ": " << endl;
		cout << "Zadajte jeho meno: ";
		getline(cin,darcovia[i].meno);
		cout << "Zadajte vysku prispevku: ";
		(cin >> darcovia[i].prispevok).get();
	}
...

keď som použil len cin >> PocetDarcov; tak som už nemal možnosť zadať meno v tom cykle, ale rovno mi to preskočilo na výšku príspevku... väčšinou mi koniec koncov všetko funguje, mňa len zaujíma prečo tam klasický cin nefunguje

Nahlásit jako SPAM
IP: 195.98.9.–
KIIV
~ Moderátor
+43
God of flame
16. 8. 2011   #4
-
0
-

#3 PeterSura
protoze po cin >> PocetDarcov zustane na vstupu enter -- toho se asi snazi zbavit tim .get() jinak cin.getline nacte zbytek radku a to by uz taky nemuselo byt nic.. jelikoz uz tam zbyva jen ten enter

kazdopadne kdyz zadas misto cisla neco jinyho tak se ti to krasne zasekne az do konce

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 85 hostů

Podobná vlákna

Cin.get() cin.line() — založil H3ll

Cin.get — založil Tomik

Cin.get() — založil myth

Cin — založil crash969

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ý