[C++] Operacje na plikach

zxc18
Użytkownik
Użytkownik
Posty: 92
Rejestracja: 12 gru 2007, o 14:29
Płeć: Mężczyzna
Lokalizacja: Szczecin
Podziękował: 65 razy
Pomógł: 1 raz

[C++] Operacje na plikach

Post autor: zxc18 »

Hm mam taki problem : mam plik (txt) a w nim wpisane liczby:

1 2 3 4
5 6 7 8
9 0
0

to jak te liczby odczytac w programie ? Aby wyswietlilo mi wszystkie na ekranie ?

No i drugi problem : jak stworzyc kryterium, aby wypisalo (wczytalo gdzies) tylko ten wiersz w ktorym znajduje sie np cztery liczby ?
Moglbym prosic o jakies przyklady itd ?

Bardzo prosze o pomoc. Dziekuje i pozdrawiam.
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

[C++] Operacje na plikach

Post autor: soku11 »

Aby wyswietlic to mozna poprostu:

Kod: Zaznacz cały


#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
  ifstream load("plik.txt");
  string buf;

  while( !load.eof() )
    buf+= load.get();

  cout << buf;
  load.close();
  return 0;
}
Aby wypisalo tylko wiersze z 4 znakami sprawdzasz czy czytany znak to

Kod: Zaznacz cały

'\n'[code]. Jesli tak to wtedy sprawdzasz zawartosc linijki. POZDRO
zxc18
Użytkownik
Użytkownik
Posty: 92
Rejestracja: 12 gru 2007, o 14:29
Płeć: Mężczyzna
Lokalizacja: Szczecin
Podziękował: 65 razy
Pomógł: 1 raz

[C++] Operacje na plikach

Post autor: zxc18 »

Hmm ten program nic nie wypisuje na ekran :( a testuje go na dokladnie takim samym pliku txt jak napisalem wyzej. Aha Soku i jakbys mogl mi dokladniej wyjasnic z tym :
Aby wypisalo tylko wiersze z 4 znakami sprawdzasz czy czytany znak to

Kod: Zaznacz cały

'\n'[code]. Jesli tak to wtedy sprawdzasz zawartosc linijki[/quote]

bo wydaje mi sie ze nie zakapowalem :(

Dzieki za pomoc, pozdrawiam
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

[C++] Operacje na plikach

Post autor: soku11 »

Hmpf... Mi wszystko pieknie dziala... Czy aby na pewno ten plik sie nazywa "plik.txt" i sie znajduje tam, gdzie kompilujesz execa (albo tam gdzie jest exec ale uruchamiasz bez kompilacji)??

Co do tej drugiej czesci to robisz cos w stylu:

Kod: Zaznacz cały

string line;
int size;

while( !load.eof() )
{
  line+=load.get();
  size=line.size()-1;
  if( size>0 && line[size]=='\n' ) // pojawil sie koniec i nie pierwszy znak
  {
    if( CheckLine(line) )  // sprawdz czy sa 4 cyfry
      cout<<line;
    line.clear();  //skasuj poprzednia zawartosc
  } 
}
Gdzie procedruka Checkline bedzie miala prototyp:

Kod: Zaznacz cały

bool CheckLine( string line);
A w niej poprostu operujesz jak na tablicy charow sprawdzajac kolejne miejsca. Wszystko tutaj zalezy od tego jak maja wygladac dane, czy maja byc tam spacje itd... POZDRO
ODPOWIEDZ