Tablica plików, nazwy plików tekstowych

0

Witam.
Chciałbym utworzyć tablicę plików tekstowych

 ofstream rosnaco[12];

następnie w pętli otwierać plik (jeśli nie istnieje na dysku to go tworzyć) zapisywać do niego liczby, zamykać plik i otwierać następny w tablicy z indeksem większym o jeden. Wrzucę kawałek kodu:

void GenerujDane()
{
	int i=0, n=10000;
	string str;
	cout<<"Generowanie danych wejściowych. Moze zająć to minutkę.";

	ofstream rosnaco[12], malejaco[12], stale[12], a[12], roznie[12];

	for(int j=0; j<12; j++)
	{
         rosnaco[j].open("rosnaco" + j + ".txt")
		for(int x=1; x<=n; x++)
		{
			rosnaco[j]<<x<<endl;
		}
		if(n>=100000)
			n=n*10;
		else
			n=n+10000;
        rosnaco[j].close();
	}
	




	system("CLS");
} 

Napotkałem na problem.
Kompilator wyrzuca błędy, związane z błędem konwersji string do const wchar_t w linii zaraz po otwarciu pętli for.

Tak swoją drogą, jak zapisywać liczby do pliku, żeby nie oddzielało spacjami znaków w liczbie powyżej 1000 ? Tzn. jeśli zapisuję w ten sposób co na powyższym przykładzie to mam 998, 999, 1 000, 1 001, a chciałbym mieć 998, 999, 1000, 1001, żeby później łatwiej odczytywać te liczby.

0
ostringstream oss;

oss << "rosnaco" << j << ".txt";

rosnaco[j].open(oss.str().c_str());

Jeśli chodzi o drugie pytanie, zmiana *locale *powinna rozwiązać problem:

locale loc("C", locale::numeric);
...
rosnaco[j].open(...);
rosnaco[j].imbue(loc);

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.