W Projekcie mam pliku nazwane Gracz0.txt, Gracz1.txt, itd...
Chciałbym wczytywać dane z tych plików. Utworzyłem więc funkcję która ma za zadanie tworzyć nazwy tych plików do wczytania i do zapisywania.
const char * UtworzNazwePliku(int nr) // taki typ zwracany jest potrzebny do operacji na plikach
{
char pomocnicza[5]; // na max 5 cyfrowe liczby
string nazwa = "Gracz";
nazwa += itoa(nr , pomocnicza, 10); // konwersja int na string,
nazwa += ".txt";
cout << nazwa.c_str() << endl;
return nazwa.c_str();// c_str() konwersja z string na const char
}
Wywołując tą funkcję w taki sposób:
plik.open(UtworzNazwePliku(0), ios::in);
Dane nie są wczytywane.
Natomiast jeżeli podam bezpośrednio nazwę:
plik.open("Gracz0.txt", ios::in);
wszystko działa poprawnie, dodatkowo na ekranie widać poprawną nazwę
Pytania:
- Czy ma to coś związek z Typem string i znakiem zera na końcu?
- Czy jest możliwość, przeprowadzenia konwersji bez tej pomocniczej tablicy ?