Elikkä, kuinka saisin (helposti) luettua tiedostosta(.txt) tietoa useammalta riviltä. Tuon opaskirjan mallilla saan kyllä luettua helposti ensimmäisellä rivillä olevat tiedot mutta tekemässäni ohjelmassa tietoa tulee useammalle riville. Apu ois tarpeen.
Yleisesti ottaen toistat rivin lukemisen useamman kerran niin saat aina seuraavan rivin.
Tarkempaan vastaukseen auttaisi jos tietäisi mikä kieli ja ympäristö on kyseessä tai mikä tarkalleen ottaen on "tuo opaskirja".
Kieli?
C:n fscanfissa '\n' vastaa rivinvaihtoilmaisinta (en ole täysin varma, miten ohjelma suhtautuu järjestelmän vakiosta poikkeaviin rivinvaihtosymboleihin);
fscanf(stream, "%c=%f\n%d", ...);
edit: ohjelma lukee samalla tavalla kuin kirjoittaa, mutta ongelmia saattaa siis esiintyä jos ohjelma ei itse tee luettavaa tiedostoa.
Aivan.. :)
Kielihän on siis C++ ja opas kirjalla tarkoitin tietysti Ohjelmointiputkan C- opasta.
Pikainen ja yksinkertainen esimerkkiohjelma C++:n tiedostonluvusta. Lukee tiedostosta rivin kerrallaan muuttujaan 'rivi' ja tulostaa sen sisällön. Testaamatonta, joten saattaa joku virhe olla eksynyt joukkoon.
#include <iostream> #include <fstream> // tiedostovirrat mukaan #include <string> #include <cstdlib> using namespace std; int main() { ifstream filu("esim.txt"); // avataan tiedosto lukemista varten string rivi; // luetaan rivi aina tähän muuttujaan // silmukka, joka pyörii niin kauan kun saadaan rivi luettua while( getline(filu, rivi) ) { cout << rivi << endl; // tulostetaan rivi } filu.close(); // suljetaan tiedosto return EXIT_SUCCESS; // lopetetaan }
jack kirjoitti:
Kielihän on siis C++ ja opas kirjalla tarkoitin tietysti Ohjelmointiputkan C- opasta.
Hetkinen... Joku ei nyt täsmää...
Blaze kirjoitti:
jack kirjoitti:
Kielihän on siis C++ ja opas kirjalla tarkoitin tietysti Ohjelmointiputkan C- opasta.
Hetkinen... Joku ei nyt täsmää...
Mikäs ei täsmäisi? Eihän siinä oppaassa käsitellä mitään mitä C++ ei pitäisi sisällään. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.