Avatar
rexaxer
Člen
Avatar
rexaxer:

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ý
Redaktor
Avatar
Odpovídá na rexaxer
Jan Vargovský:
while(in >> poleHodnot[i++])
 in >> tmp; // skipnes oddelovac
 
Nahoru Odpovědět 21.12.2014 17:51
Avatar
rexaxer
Člen
Avatar
rexaxer:

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ý
Redaktor
Avatar
Odpovídá na rexaxer
Jan Vargovský:

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
Redaktor
Avatar
Ziki:
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
Redaktor
Avatar
Odpovídá na rexaxer
mkub:

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:

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.