zapis danych do pliku w tablicy

0

Istnieje możliwość zapisu danych do tablicy?
Próbuję coś, ale mi nie wychodzi.

Ps. Proszę odpowiadać mi jak idiocie ;D

#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;

string produkt[99];
int main()
{


    fstream dane;
    dane.open("dane.txt", ios::app);
    if(dane)    {cout << "dziala"<<endl<<endl;}
    else        {cout << "nie dziala"<<endl<<endl;}

    cout << "Podaj produkt: ";
    cin >> produkt[0];
    cin >> produkt[1];
    dane.write(&produkt[99], produkt.length());
    dane.close();
0

Co Twoim zdaniem powinna zrobić ta linijka ?

dane.write(&produkt[99], produkt.length());
0

Nie używaj zmiennych globalnych. Napisz co chcesz zrobić, bo z kodu nie idzie tego wywnioskować. Chcesz wczytać słowa z pliku do tablicy produkt?

0
  1. Nie zamknięta funkcja main().
  2. Odwołujesz się do 100 elementu tablicy 99 elementowej.
  3. fstream::write przyjmuje jako argument const char * a przekazujesz std::string*.
  4. Tablice w C++ nie mają żadnych metod, więc produkt.length() jest niepoprawne.
0

Było oryginalnie (skąd to wytrzasnąłem) : dane.write(&produkt[0], produkt.length());

Tak kombinowałem po prostu już w każdą stronę... : /

@kq
tak, zapisywać różne dane tekstowe i potem wyciągania jak z tablicy.

@hauleth

  1. Jest zamknięta { }. Po prostu jakoś nie wczytało końcówki
  2. Nie rozumiem :(
  3. Rozumiem
  4. Pół na pół
0
#include <iterator>
#include <iostram>
#include <fstream>
#include <algorithm>
#include <string>

int main()
{
    std::string arr[99];
    std::ifstream f("data.txt");
    std::copy_n(std::istream_iterator<std::string>(f), 99, std::begin(arr));
}

pisane z palca, ale powinno być ok

0

@kq:

Nie trzeba otwierać i zamykać pliku?

0

Trzeba. Ale nie trzeba się silić aby robić to jawnie. Inna sprawa to obsługa błędów - tego u mnie nie ma, ale to też proste.

0

@kq:

Wyszły mi errory (coś źle robię) (jestem bardzo początkujący w C++).

error: 'copy_n' is not a member of 'std'
error: 'begin' is not a member of 'std'

{

fstream dane;
dane.open("dane.txt", ios::app);
if(dane)    {cout << "dziala"<<endl<<endl;}
else        {cout << "nie dziala"<<endl<<endl;}

std::string arr[99];
std::ifstream f("dane.txt");
std::copy_n(std::istream_iterator<std::string>(f), 99, std::begin(arr));

cout << "wpisz produkt";
cin >> produkt[0];

dane.close();


return 0;

}

0
#include <iterator>
#include <iostram>
#include <fstream>
#include <algorithm>
#include <string>

tak się składa, że napisałem to nawet wyżej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1