Automatyczna zmiana tworzonego pliku przy każdej iteracji. (c++)

Witam. Chciałem napisać w c++'ie program, któryby, prosił użytkownika o podanie imienia, nazwiska i nr telefonu, po czym zapisywałby te dane w pliku .txt. Chciałbym, żeby dane każdego użytkownika były zapisywane w osobnym pliku, do czego potrzebna jest każdorazowa zmiana nazwy pliku.  wpadłem na pomysł, żeby do nazwy pliku dodać numer iteracji pętli i tu zaczyna się mój problem. Otóż w poleceniu nazwa pliku jest w w cudzysłowie, więc dopisanie i do niej “i” odpada. I tu pojawia się moje pytanie: jak to zrobić? Pracuję na win7, kompilator: GNU GCC compilator.

 

CODE

#include <iostream>
#include <fstream>
using namespace std;
int nr;
string imie, nazw;
int main()
{
    while(true)
    {
    cout << "podaj imie: " << endl; cin>>imie;
    cout << "podaj nazwisko: " << endl; cin>>nazw;
    cout << "podaj numer telefonu: " << endl; cin>>nr;
    fstream plik;
    plik.open(“text.txt”, ios::out  );
    plik<<imie<<endl;
    plik<<nazw<<endl;
    plik<<nr<<endl;
    plik.close();
    return 0;
    }
}

 

 

“text”+std::to_string(i)+".txt"

Dziękuję :slight_smile:

 

zaraz, czyli linijka ma być taka?

plik.open(“text”+to_string(i)+".txt", ios::out  ); 

bo nie działa, w logu pisze : “error ‘i’ wan not declared in this scope” oraz “error ‘to_string’ wan not declared in this scope” 

Tak to by wyglądało w poprawnie zrobionej pętli. Twoja pętla nie jest pętlą bo wykona się tylko raz ponieważ masz na końcu return. Kolejna sprawa w przykładzie w którym dałeś nie masz żadnej zmiennej i więc jeśli Twój przykład to cały kod jaki masz nie ma prawa zadziałać ta zmiana.

 

Ja Ci tylko podałem przykład jak budować dynamicznie nazwy plików.