Skocz do zawartości

Wczytywanie/zapisywanie pliku


Rekomendowane odpowiedzi

Opublikowano

Załżmy że plik dane.txt wygląda tak:

 

1234 6544 8298 2936 5
1293 9384 8277 1111 6

 

chcę wczytać pierwsze 4 liczby do tablicy a piątą do zmiennej A, wykonać pare rzeczy, przepisac tablicę do pliku wynik.txt i powtórzyć to wszystko z drugim wierszem. Jakieś pomysły?

Opublikowano

eee ale nie rozumiem w czym problem?

 

fopen()->otwierasz dany plik

fread() ->czytasz 3 liczby do tablicy

fread() -> czytasz to a

fclose()

 

bawisz się z nimi..

 

i zapisujesz do nowego pliku jedyna różnica fwrite zamiast fread.

Poza tym all funkcje dokładnie opisane na stronie którą podałem wraz z krótkimi przykładami.

Opublikowano

Nie wiem czy pomoc ci jeszcze potrzebna, ale napisze jakby co.

A więc przykładowy zapis do pliku moim zdaniem powinien wyglądać tak:

 

 
#include<fstream>
   
   int main()
   {
        int tab[3], A; //deklaracja zmiennych
   
        tab[0] = 1234; //przypisanie zmiennym wartości
        tab[1] = 6544;
        tab[2] = 8298;
        tab[3] = 2936;
   
        std::ofstream PLIK ("dane.txt"); //Otworzenie pliku do zapisania
        PLIK<<tab[0]<<"\n";
        PLIK<<tab[1]<<"\n";
        PLIK<<tab[2]<<"\n";
        PLIK<<tab[3]<<"\n";
        PLIK<<A<<"\n";
   }

 

 

A przykładowy odczyt tak:

 

 #include<iostream>
   #include<fstream>
   #include<sstream>

   int ZA(std::string FOO)
   {
       int i;
       std::istringstream iss(FOO);
       iss >> i;
       return i;
   }
   
   int main()
   {
        int tab[3], A; //deklaracja zmiennych
        std::string foo, B;
   
        std::ifstream PLIK ("dane.txt"); //Otworzenie pliku do odczytu
        for(short p1=0; p1<4; ++p1)
        {
                  PLIK>>foo;
                  tab[p1] = ZA(foo); //zamiana stringu na int'a
        }
        PLIK>>B;
        A = ZA(B);
        for(short p2=0; p2<4; ++p2)
        {
                  std::cout<<tab[p2]><<"\n"; //wypisanie zmiennych na ekran
        }
        std::cout<<a;
        getchar();
   }

 

Kod pisałem na szybko z głowy, ale nie powinno być żadnych błędów.

Opublikowano

Podstawowa zasada nie wiesz, nie znasz się.. to po prostu nie pisz. Nauczy się jak sam rozwiąże problem a Ty popraw błędy.

Opublikowano

Ale o co ci chodzi?

Gdzie ty masz tam błędy? U mnie się kompiluje elegancko i działa.

Podstawowa zasada nie wiesz, nie znasz się.. to po prostu nie pisz.

No właśnie tylko szkoda że sam się do tej zasady nie stosujesz :twisted:

Opublikowano

Omg.. nie dość, że robisz błędy to jeszcze nie potrafisz się do nich przyznać. Do tego jeszcze masz błąd w kodzie w sygnaturze gratuluje inteligencji.

Jeżeli wyznacznikiem tego czy program działa czy nie jest to, że się kompiluje to moje mniemanie o tobie jeszcze się obniżyło.

 int tab[3], A; //deklaracja zmiennych
   
        tab[0] = 1234; //przypisanie zmiennym wartości
        tab[1] = 6544;
        tab[2] = 8298;
        tab[3] = 2936;

if (a=>18)

 

A to jest już szczyt tylko nie jestem pewien czego.

Opublikowano

Moja sygnaturka nie jest tematem tej rozmowy.

Napisałem że się kompiluje i działa, a nie że się tylko kompiluje, czytanie za zrozumieniem...

Nadal nie wiem gdzie widzisz w moim kodzie błędy.

Opublikowano

No kur.. poczytaj o tablicach i plikach bo ja już tu nic nie zdziałam. Działać a działać poprawnie to zasadnicza różnica.

Opublikowano
Nadal nie wiem gdzie widzisz w moim kodzie błędy.

Tak samo jak Will, polecam Ci przeczytać o tablicach... A gdzie jest błąd, domyśl się :)

 

E:

Bezmózgowie czyni cuda ^^
Raczej w tym przypadku nie czyni żadnych cudów ;p
Opublikowano

int tab[3], A; //deklaracja zmiennych
  
        tab[0] = 1234; //przypisanie zmiennym wartości
        tab[1] = 6544;
        tab[2] = 8298;
        tab[3] = 2936;

int tab[3] == tab[0] tab[1] tab[2] :| ( 3 elementy...)

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...