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

čtení na vstupu – C / C++ – Fórum – Programujte.comčtení na vstupu – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Kuba-$
~ Anonymní uživatel
24 příspěvků
10. 11. 2007   #1
-
0
-

Zdravím,
Potřebuju číst řetezce na standartnim vstupu. Jenže nevím, kolik jich bude, tak budu muset použít cyklus.
Jak ale zjistím, že jsem se dostal na konec řádku a na konec vstupu?
Vím, že musíkm použít porovnání s: \n nebo EOF. Ale jak to zapsat?



while (vstup != EOF) { // tohle to funguje, ale hodnoty se mi ulozi vzdy, kdyz zmacknu Enter, coz nechci,
scanf("%i", &vstup); // chci to ulozit po jednom, az se dostanu na konec vstupu.
} // tedy EOF (ve Winu pos tisknuti CTRL+Z)

Nahlásit jako SPAM
IP: 85.132.224.–
Reklama
Reklama
tmi0
Věrný člen
10. 11. 2007   #2
-
0
-

tak nejak nerozumim co myslis tim "ukladat po jednom"... scanf pracuje tak ze cte az do nasledujiciho znaku typu mezera/enter/tab (ws character), a vraci pocet uspesne nactenych polozek, nebo nejake zaporne cislo v pripade EOF

Nahlásit jako SPAM
IP: 89.185.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
k
~ Anonymní uživatel
143 příspěvků
10. 11. 2007   #3
-
0
-

No, ak to mas cez konzolu, tak hned po '\n' nasleduje EOF (resp. 0), po kazdom stisku enteru (pekne to videt na unixoch, kde cely vstup je rieseny cez /dev/stdin, co je subor, a subor je ukoceny EOF). Priblizne takym sposobm ako to mas by ti to fungovalo so subormi.

Ak to chces nacitavat cez konzolu, tak si budes muset zvolt nejaky ukoncovaci znak/retazec ktory ked user zada, skoncis.

Nahlásit jako SPAM
IP: 195.91.54.–
tmi0
Věrný člen
10. 11. 2007   #4
-
0
-

To k : pozor, EOF neni nula, a po '\n' nenasleduje ani 0, ani EOF. napiste si program s
while(1){
if(scanf(" ") < 0) return 0;
}
a i kdyz budete porad entrovat program neskonci.

Nahlásit jako SPAM
IP: 89.185.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
Kuba-$
~ Anonymní uživatel
24 příspěvků
10. 11. 2007   #5
-
0
-

Jenže já potřebuju zadat v konzoli pár čísel. např takto:


13 85 54 8 156
56 46 9654 3

75
567 64 4 6 98


A potřebuju načíst vždy každé číslo dokud neukončím tím CTRL+Z nebo CTRL+D(v Linuxu).
Jenže když zadam Enter, pokaždé se mi načte jeden řádek čísel (každé číslo zvlášt), misto abych mohl zadat více řádků a pak to uložit.

Omlouvám se jestli to vysvětluju špatně, ale potřebuju z takto zadaných čísel na standartním vstupu udělat průměr.

Nahlásit jako SPAM
IP: 85.132.224.–
tmi0
Věrný člen
10. 11. 2007   #6
-
0
-

tak tohle bych ukladal do pole, tedy
int i=-1;
while( i++, scanf("%d",pole[i]));

nebo si to nacti jako retezec. taky to zalezi na tom jestli si potrebujes ty hodnoty porad pamatovat nebo jen jejich soucet ci neco takoveho

Nahlásit jako SPAM
IP: 89.185.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
mephi0
Expert
11. 11. 2007   #7
-
0
-

#include <iostream>

using namespace std;
int main()
{
int hodnota,sucet = 0,pocet = 0;
while(hodnota != -1)
{
cin >> hodnota;
sucet += hodnota;
pocet++;
}
cout << "Priemer: " << sucet/float(pocet);
}

Nahlásit jako SPAM
IP: 85.248.56.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
tmi0
Věrný člen
11. 11. 2007   #8
-
0
-

aha sorry nevsim sem si ze chces prumer...

Nahlásit jako SPAM
IP: 89.185.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
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, 244 hostů

Podobná vlákna

čtení ze vstupu — založil gomess

čtení vstupu v UTF-8 — založil Petr Zakopal

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ý