mam mały problem. Robię program który zapisuje 4 znakowe oznaczenia i 2 liczby jako parametry:
po okrojeniu kodu ze zbędnych śmieci
if (liczbatagów>0)
{
file.open(string(plik,ios::out|ios::binary);
if (file.good())
{
filelenght=liczbatagów;
file.write((char*)&filelenght,1);
for (unsigned int i=0; i<filelenght; i++)//zapisz wszystkie oznaczenia
{
file.write(tags[i],4);
if(stringtocommand(tags[i]).arguments.size()>1)//jeśli są przynajmniej 2 parametry
{
for (int j=0; j<2; j++)//zapisz tylko 2
{
number=atoi(stringtocommand(tags[i]).arguments[j].c_str());
file.write((char*)&number,1);
}
}
}
file.close();
}
else
{
CommandOutputString.push_back("Failed to create file");//powiadomienie programu o błędzie
}
}
CommandOutputString.push_back(command);//dodanie komendy do chatu
i odczytywanie:
file.open(plik,ios::binary|ios::in);
if (file.good())
{
file.read((char*)&filelenght,1);
for (int j=0; j<filelenght; j++)
{
lineh=new char[4];
file.read(lineh,4);
cout << lineh << endl;
invertoutput.push_back(string("addtotags ")+'"'+filetagtotag(string(lineh)));//dodanie polecenia do odwróconej listy poleceń
delete[] lineh;
for (int i=0; i<2; i++)
{
file.read((char*)&number,1);
lineh=new char[1];
itoa(number,lineh,10);
invertoutput[invertoutput.size()-1]+=' ';
invertoutput[invertoutput.size()-1]+=string(lineh);
delete[] lineh;
}
invertoutput[invertoutput.size()-1].push_back('"');//koniec ładowania lini
}
file.close();
}
niestety pojawiają się rózne dziwne błędy typu losowy znak lub ładowanie nieistniejącego oznaczenia