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

Cin.getline – C / C++ – Fórum – Programujte.comCin.getline – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Hlavinka0
Návštěvník
3. 7. 2009   #1
-
0
-

prosim poradte mi jak mam dosadit cin.getline aby to fungovalo:

#include <iostream>
#include <cstring>

struct auta{
std::string znacka;
int datum;
};

int main()
{
using namespace std;

int pocet;
int num = 0;
cout << "zadejte pocet aut ktere mate: ";
cin >> pocet;
auta *uka = new auta[pocet];

while (num < pocet){
cout << "\nzadejte informace o aute cislo "
<< num + 1
<< "\nzadejte znacku: ";
cin >> (uka[num]).znacka; //tady
cout << "\nzadejte rok vyroby: ";
cin >> (uka[num]).datum; //a tady
++num;};

num = 0;

while (num < pocet){
cout << "\ninformace o vasem "
<< num + 1
<< ". aute: \n"
<< (uka[num]).znacka << endl
<< (uka[num]).datum;
++num;};

string konec = "konec";
cout << "\n\n\npro ukonceni programu napiste \"konec\"\n";
for (string konecc;konec != konecc;cin.clear())
cin >> konecc;
}

dik za to ze se tu aspon podivate :D

Nahlásit jako SPAM
IP: 78.157.166.–
Reklama
Reklama
dannyk0
Věrný člen
3. 7. 2009   #2
-
0
-

No ja bych misto tohoto:



for (string konecc;konec != konecc;cin.clear())
cin >> konecc;

dal neco, jako toto:


char *buff[20];
cin.getline(buff, 20);
if(!strcmp(buff, "konec"))
ukonceni
else
nejake pokracovani, kdyz nebyl zadan konec

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
nikto
~ Anonymní uživatel
24 příspěvků
3. 7. 2009   #3
-
0
-

Pouzi globalnu funkciu getline(istream&, string&) (deklarovana v <string>); nie istream::getline() (ten funguje len s C retazcami);

#include <string>

/*...*/
getline(cin, uka[num])

Nahlásit jako SPAM
IP: 217.118.98.–
nikto
~ Anonymní uživatel
24 příspěvků
3. 7. 2009   #4
-
0
-

ej, chybicka.... uka[num].znacka tam ma byt.

Nahlásit jako SPAM
IP: 217.118.98.–
Hlavinka0
Návštěvník
3. 7. 2009   #5
-
0
-

dik nikto za pomoc a dynnyk dik za kritiku, ale ja to tam mam proto protoze pak uz nic neni a toto se mi zdalo jako nejlepsi reseni a nevic tot tvoje je kapku vetsi a jsem to chtel co nejmensi(aby mi to na obrazovce nebralo moc mista)

Nahlásit jako SPAM
IP: 78.157.166.–
Hlavinka0
Návštěvník
3. 7. 2009   #6
-
0
-

nikto zjistil jsem ze to neni spravne me to ten radek preskakuje(mozna sem to tam napsal spatne):

...
getline(cin, uka[num].znacka);
...

Nahlásit jako SPAM
IP: 78.157.166.–
nikto
~ Anonymní uživatel
24 příspěvků
3. 7. 2009   #7
-
0
-

To Hlavinka : Problem je v tom, ze cin >> nejaky_int; (alebo podobne) nechava na vstupe znak noveho riadku a potom getline() hned konci lebo prvy znak co uvidi je '\n'
Ten odstranis pomocou cin.get();
Za cin >> num; a cin>>uka[num].datum dopis cin.get().

Nahlásit jako SPAM
IP: 217.118.98.–
Hlavinka0
Návštěvník
3. 7. 2009   #8
-
0
-

jo sry ja na to zapomnel opravim to :D

Nahlásit jako SPAM
IP: 78.157.166.–
dannyk0
Věrný člen
3. 7. 2009   #9
-
0
-

Ta velikost je hodne relativni :D Ja kdyz na to kouknu a odmyslim tu else cast a definovani toho string konec, tak mi to velikostne prijde prakticky stejne :)

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
Hlavinka0
Návštěvník
3. 7. 2009   #10
-
0
-

:-D jasne ale jenom pokud si to odmyslis, a navic ja to udelal aby to aspon fungovalo ;-)

Nahlásit jako SPAM
IP: 78.157.166.–
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, 41 hostů

Podobná vlákna

Cin.getline — založil tupec

Cin.getline — založil RybaRak-WM

Cin.getline — založil Avidius

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

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ý