Terve. Onko jotenkin mahdollista hakea .txt tiedostosta tietoja ja tulostaa niitä näkyviin?
Olen yrittänyt alla olevalla koodia mukkaamalla saada mutta en ole onnistunut. Txt tiesotossa on allekkain tietoja esim:
auto = 1
pyörä = 2
vene = 7
Ajatuksena olisi saada pelkästään esim pyörän tieto (2) tulostettua. Ongelmaahan tietenkin lisää kun txt tiedostoja on erilaisia ja pyörän paikka ei saata olla samalla rivillä kuin tässä esimerkissä.
Mitään ideoita?
int main() { FILE *ptr_file; char buf[1000]; int hinta = 10; ptr_file =fopen("test.txt","r"); if (!ptr_file) return 1; while (fgets(buf,1000, ptr_file)!=NULL) printf("%s",buf); hinta = buf printf("%d",hinta); fclose(ptr_file); return 0; }
Kannattaa ensin hahmotella millä tavalla ongelma ratkeaa ihan ilman ohjelmakoodia. Suunnittele siis pöytämalli, jolla testaat ohjelmaasi. Esimerkiksi:
luo rakenne {nimi, määrä} luo raketeelle taulukko ja varaa sopivasti tilaa Avaa tiedosto lukutilaan Lue rivi paloittele rivi '=' merkin kohdalta tallenna paloitellut osat rakenteeseen {nimi, määrä}
Nyt sinulla on tieto melko fiksusti jäsennetty paikalleen. Nyt voit vaikka kysyä käyttäjältä minkä tiedon hän haluaa noutaa. Syötteen perusteella selaat taulukon läpi ja tutkit löytyykö haettua sanaa.
Jos C ei ole pakollinen kieli, niin C++ tarjoaa oleellisesti mukavamman tavan lähestyä ongelmaa. Tosin on olemassa muitakin mukavia kieliä ratkaista ongelmaa. Koulutehtävähän tämä lienee, joten kielivalinta lienee sitä myöten taputeltu.
Jos rivillä on aina tuolla tavalla sana ja luku, voit lukea rivin helpoiten fscanf-funktiolla.
char sana[100]; int luku; fscanf(ptr_file, "%99s = %d", sana, &luku);
Sitten voit tutkia strcmp-funktiolla, onko sana "pyörä".
Aihe on jo aika vanha, joten et voi enää vastata siihen.