Mulla on ongelmana, että en osaa parsia tiedostosta lukemani rivin sisältöä. Koitin googeletella apuja, mutta ei siitä mitään tullut, kun joka esimerkkiin oli tungettu pointterikikkailuja tai jotain muuta pro-meininkiä. (pointtereiden hyötyä en o koskaan ymmärtänyt)
Luen tiedostosta rivejä, joissa on aina rivillä viisi numeroa, jotka on sitten erotettu tabulaattorilla toisistaan. Tavoitteena olisi lukea ne taulukkoon, jossa sitten voisin suorittaa luetulla rivillä olleilla numeroilla vertailuja.
1 2 3 4 5
6 7 8 9 10
2 3 4 5 6
jne...
Siis tähän tyyliin ne on filussa, mut tabulaattori välilyönnin tilalla.
Kannattaako mun käyttää 2-ulotteista taulukkoa: taulu [100][5]; että pääsen vertailemaan niitä rivin lukuja keskenään? Tällä hetkellä se lukee aina rivin 1-ulotteisen taulukon soluun.
/****************************/
string s;
int laskuri=0;
string filusta[100];
//Luetaan tiedosto riveittäin taulukkoon
while ( getline(fi,s) )
{
filusta[laskuri]=s;
laskuri ;
continue;
}
fi.close();
/********************************/
Entä pitääkö mun suorittaa joku tyyppimuunnos, että noi luvut ovat oikeasti numeroita, eivätkä tekstiä?
Yritin sellasta, että int s; mutta se valitti jotain virhettä heti. Sitten koitin int numero =int(s); mutta taas heitti jotain erroria. Jotain tyyppierroria mun muistaakseni.
Tiedostosta luku ja parsettaminen (C++)?
9
1019
Vastaukset
- perinteinen C
Tuohan onnistuu scanf:llä melko helposti. Luet vain rivin ja sitten scanf:llä teksti numeroiksi.
- teuro
http://www.suomipelit.com/files/koodiaitta/34/filut.zip
Ja ihan itse tehty rajapinta tiedostoille. JOs tarvetta voin yrittää selittää miten tuota käytetään. - puusilima_
tarvitaan jos muuttaa char/int
atoi(),itoa()
mihin tarvitset 2ulotteisen taulukon? jos oikein tajusin niin et mihinkään.
//esim.
#include
char teksti[10]=("50234");
int i;
//teksti numeroiksi
i = atoi( teksti );
//numerot tekstiksi
itoa (i,teksti,10); - puusilima_
"pointtereiden hyötyä en o koskaan ymmärtänyt) "
no tässäpä nyt ongelmaasi liittyen? yksinkertaisesti.
jos et tiedä valmiiksi kuinka suuri luettavan tiedoston koko on niin mitä sitten kun muuttujasi string str[100] ylittyy?
sitten tulee(tai siis jo alunalkaen ja pois tuo str) kyseeseen pointterit ja new...- prosessori käyttää
AINA osoittimia - kielestä riippumatta ? jos käytetään prosessorin hierarkiaa OIKEIN.
- puusilima_
prosessori käyttää kirjoitti:
AINA osoittimia - kielestä riippumatta ? jos käytetään prosessorin hierarkiaa OIKEIN.
riippuu siitä mitä tarkoitat "Perustasolla".
Perustasolla prosessori käyttää ykkösiä ja nollia(virta päällä/virta pois päältä). - prosessori siirtää
puusilima_ kirjoitti:
riippuu siitä mitä tarkoitat "Perustasolla".
Perustasolla prosessori käyttää ykkösiä ja nollia(virta päällä/virta pois päältä).kytkiminä toimivien puolijohteitten rajapintojen yli varauksia - akseptorit ja donorit avainasemassa.
:D
- Johnnie83
Suosittelisin kyllä osoittemien oppimista koska paitsi että ne ovat käteviä ja säästävät muistia niin ne hyvin käytettynä helpottaa koodia huomattavasti. Mutta, jos käyttää C :an STL kirjastoa niin onnistuu se ilman osoittimiakin.
Tässä esimerkki:
#include
#include
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
/* Muuttujat */
vector< vector > matriisi;
vector m_rivi;
string buffer;
string::iterator it;
ifstream tiedosto;
stringstream arvo_s;
int arvo;
/* Avataan tiedosto lukua varten */
tiedosto.open ("tiedosto.txt");
/* Luetaan tiedosto rivi riviltä ja tallennetaan matriisiin */
while( getline(tiedosto,buffer) )
{
/* Luodaan uusi rivi */
m_rivi.clear();
/* Muutetaan tekstirivin numerot luvuiksi(int) */
for(it=buffer.begin(); it != buffer.end() ; it )
if(*it != '\t')
{
arvo_s > arvo; arvo_s.clear();
m_rivi.push_back(arvo);
}
/* Tallennetaan rivi matriisiin */
matriisi.push_back(m_rivi);
}
/* Suljetaan tiedosto */
tiedosto.close();
/* Tulostetaan luettu matriisi */
for(int i=0; i- tässäkin on käytössä
"
for(int i=0; i
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Olet toisen kanssa
...ja minä yhä vain sinua kaipaan. Tiedän ettet ole onnellinen siellä. Älä hukkaa aitoa onnea ja rakkautta hukkaan vain2241556- 291403
Kuka teistä on paras nainen
A-nainen? J-nainen? K-nainen? M-nainen? S-nainen? Vai kenties joku muu...? 😊611269Immu otti pataan
Olen pettynyt, hänen piti viedä Stagalaa kuin litran mittaa - mutta kuinka kävikään? Voi hemmetti sentään.... Ääääääh!691227- 781204
Osaako joku selittää tätä
Että miksi mulle on joka toinen ventovieras ihminen tyly ainakin ilmeillään ja eleillään?751172Jos me joskus nähtäisiin
niin ei kai sen vielä tarvitsisi merkitä sen enempää? Ja voihan olla ettei kumpikaan enää siinä vaiheessa edes haluaisi1031163- 54998
Lesken uusi
Onko totta että puolangan kunnalla töissä ollut mies joka kuoli niin sen vaimolla jo uusi lohduttaja. Pitäneekö paikkans18962Persun suusta:"Köyhät on luusereita ja ansaitsevat köyhyyden"
Ministeri Juuston apulainen näin uhoaa. Mitäs siinä. Kyllä on jo tiedetty muutaman vuoden hallitustyön pohjalta että per175855