[c++] fstream, zapisywanie do pliku

0

Witam, uczę się biblioteki fstream i napotkałem się na problem. Program się kompiluje, jednak nic nie zapisuje się do pliku. Moim zamiarem jest, gdy za każdym razem gdy dopisze się dodatkowe dane, na początku program ma wyliczyć ile razy w pliku wystąpił znak [ a następnie na podstawie jego ilości przypisać kolejny numer ID do pliku. Jednak mimo wpisyania wszystkich danych program nie zapisuje danych. Wiem, że kod jest mało czytelny, pewnie bardzo błędnie napisany - proszę o poprawienie mnie.

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int item_id = 0;
    string id_char;
    short int item_tier;
    char item_type[32];
    char item_name[256];
    short int item_resourcesNeeded;

    scanf("%d", &item_tier);

    scanf("%s", &item_type);

    scanf("%s", &item_name);

    scanf("%d", &item_resourcesNeeded);

    fstream file("plik.txt");

    fstream file1;
    file1.open("plik.txt", ios::out | ios::app);
    if(file1)
    {
        while(getline (file, id_char))
        {
                if(!(string::npos == id_char.find(" [ ")))
                    item_id++;
                    else
                    item_id = 25000;
        }

        file1 << "[" << item_id << "]" << item_tier << "." << item_type << "." << item_name << "." << item_resourcesNeeded << "\n" ;
         file1.close();
    }
}
3

Otworzyłeś plik tylko do zapisu. Próbujesz z niego czytać. Nie sprawdzasz czy operacje wykonały się.

1

Zdecyduj się czy chcesz pisać w C++ czy w C, ale nie mieszaj. Upewnij się, że plik, który chcesz otworzyć znajduje się w tej samej lokalizacji co program i dodaj jakiś output wypisujący Ci czy jest połączenie z plikiem czy nie. Możliwe, że po prostu warunek się nie spełnia.

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