Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • Problém s ukončením načítania znakov do poľa - C

Problém s ukončením načítania znakov do poľa - C

C,C++,C#

Moderátori: psichac, Moderátori

Problém s ukončením načítania znakov do poľa - C

Odoslaťod alvar » 17 Nov 2017, 20:34

Čaute, viete mi poradiť, ako mám správne ukončiť načítavanie hodnôt do poľa "input"? Načítavanie sa ukončí vtedy, ak pri čítaní vstupu program narazí na hodnotu 0 alebo dôjde k ukončeniu štandardného vstupu (načíta sa hodnota EOF napr. stlačením klávesovej skratky Ctrl+d). Pole je typu float. Díky moc!

Kód: Vybrať všetko
float input[500];
float number;
int i = 0;

while(scanf("%f", &number) == 1){
            if(number != 0 && number != '\n' && number != EOF){
                i++;
                input[i] = number;
            }
            else {
                break;
            }
}
alvar
Nový člen
Nový člen
Príspevky: 57
Založený: 16.09.2014
Karma: 0

Re: Problém s ukončením načítania znakov do poľa - C

Odoslaťod peterple » 17 Nov 2017, 22:28

Predpoklad že number bude niekedy obsahovať '\n' alebo EOF je chybný. LineFeed je pre scanf biely znak takže ho považuje za oddeľovač ako je napr. medzera. EOF funkcia scan vracia ako výsledok volania. A tú si ty nikam neukladáš, iba ju porovnávaš či bola jedna. Teda že scan naplnil jeden parameter.
Zadanie do školy?
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
peterple
Ultimate člen
Ultimate člen
Príspevky: 1544
Vek: 51.05
Založený: 25.06.2013
Bydlisko: Krajné
Karma: 43


Naspäť na C,C++,C#

Kto je prítomný

Užívatelia prezerajúci si toto fórum: Žiadny registrovaný používateľ a 0 hostí.

Forums ©
Autor stránky je Ondrej Závodský(zawin), o graficky design sa stará Ľuboš Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
Čas potrebný k spracovaniu stránky 0.12 sekúnd