Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Nacitani hodnot ze souboru C++

Aktivity
Avatar
rexaxer
Člen
Avatar
rexaxer:21.12.2014 16:47

Ahoj, resxim problem. Mam nejake hodnoty v textaku. Kladne i zaporne oddelene znakem na radku. Neporadil by mi nekdo jak si je nactu do promene zvlast?
Tady kousek kodu.

ifstream in;
in.open(nazev­Souboru);
poleHodnot[100];
int i = 0;

while(in.get(hod­nota) && i < 99){
if(hodnota == 'oddelovac'){
i++;
}
else{
poleHodnot[i] = hodnota;
i++;
};
};
in.close();

Potreboval bych jednotlive hodnoty plnit (treba i mimo pole), ale nasledne s nemi pocitat.

Diky za tipy.

 
Odpovědět
21.12.2014 16:47
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na rexaxer
Jan Vargovský:21.12.2014 17:51
while(in >> poleHodnot[i++])
 in >> tmp; // skipnes oddelovac
 
Nahoru Odpovědět
21.12.2014 17:51
Avatar
rexaxer
Člen
Avatar
rexaxer:21.12.2014 18:56

Diky, ale abych se priznal nejsem z toho moudry. Vyzkousel jsem si to vypise mi to jinou hodnotu.Navic mi to projde jen jedenkrat, a radku je habadej. Kde delam chybu? Diky

ifstream in;
in.open(nazev­Souboru);
int poleHodnot[100];
int i = 0;
int tmp;

while(in >> poleHodnot[i++]){
in >> tmp;
cout << tmp << endl;
};
in.close();

 
Nahoru Odpovědět
21.12.2014 18:56
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na rexaxer
Jan Vargovský:21.12.2014 20:57

Můžeš mi dát co přesně je v tom souboru? Asi jsem tě blbě pochopil.

Akceptované řešení
+20 Zkušeností
Řešení problému
 
Nahoru Odpovědět
21.12.2014 20:57
Avatar
Ziki
Tvůrce
Avatar
Ziki:26.12.2014 18:02
ifstream in;
in.open(nazevSouboru);
int poleHodnot[100];
int i = 0;
int tmp;
string inputLine, value;
stringstream line;
char separator // dosaď oddělovací znak

while (getline(in, inputLine)) { // pro každý řádek
    line.data = inputLine;
    while (getline(line, value, separator)) { // vybere část řádku až po oddělovací znak
        value >> poleHodnot[i]; // případně parsovat přes atoi()
        i++;
    }
}
in.close();

nemůžu zaručit absolutní funkčnost, nezkoušel jsem to zkompilovat, ale nějak takhle jsem řešil vstup ze souboru, když jsem potřeboval načíst matice, dá se tam zakomponovat i kontrola počtu prvků na řádku a tak

Editováno 26.12.2014 18:03
Nahoru Odpovědět
26.12.2014 18:02
Ve vědění je síla.
Avatar
mkub
Tvůrce
Avatar
Odpovídá na rexaxer
mkub:31.12.2014 6:36

pouzivaj tlacitko "Vlozit zdrojovy kod" prosim (2. tlacitko sprava), lebo inak ten kod, co si sem hodil je velmi neprehladny...

 
Nahoru Odpovědět
31.12.2014 6:36
Avatar
rexaxer
Člen
Avatar
rexaxer:20.1.2015 21:36

Diky za reakce, uz vyreseno.

 
Nahoru Odpovědět
20.1.2015 21:36
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.