Итак, я пытаюсь записать большую строку в файл .txt, но у меня возникли некоторые проблемы. Я хочу вывести следующую строку:
0.x.y.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.1.x.y.t.x.y.t.x.y.t.2.x.y.t.s.x.y.t.s.x.y.t.s.x.y.t.s.3.x.y.t.x.y.t.4.N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.x.y.t.N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.x.y.t.x.y.t.x.y.t.N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.x.y.t.N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.5.
(Это формат сохранения данных, не стоит его использовать).
Чтобы попытаться проверить это, я сначала написал это (где chunk
- строка выше, созданная вне функции, которую я хочу вывести):
void WriteToFile(std::string chunk)
{
cout << "Writing...\n";
ofstream SaveGame;
SaveGame.open("SaveGame.txt");
std::string MainString = "0.x.y.t.f.t.f.t.f.t.f.";
cout << MainString;
SaveGame << MainString;
cout << "Done!\n";
}
Этот тестовый код работает нормально, и мой выходной файл содержит 0.x.y.t.f.t.f.t.f.t.f.
Но когда я попробую это:
void WriteToFile(std::string chunk)
{
cout << "Writing...\n";
ofstream SaveGame;
SaveGame.open("SaveGame.txt");
std::string MainString = chunk;
cout << MainString;
SaveGame << MainString;
cout << "Done!\n";
}
Я получаю тарабарщину:
⸰ ⸱⸲ ⸳⸴⹎ 慮 敭 琮 昮 洮 䤮 砮 礮 琮 砮 礮 琮 砮 礮 琮 砮 礮 琮 丮 渮 浡 ⹉ ⹎ 慮 敭 琮 昮 洮 䤮 砮 礮 琮 砮 礮 琮 砮 礮 琮 砮 礮 琮 丮 渮 浡 ⹉⸵
Само собой разумеется, это не то, что я хочу.
Вот полный код программы; обратите внимание, что не удается использовать ли WriteToFile (Chunk) или WriteToFile (Total). Код также завершается ошибкой, если я инициализирую MainString как целую строку в WriteToFile.
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
void ReadFile();
void WriteToFile(std::string chunk);
int main()
{
///CHUNK SAVE FORMAT
std::string Chunk = "0.";
Chunk += "x.y.";
Chunk += "t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.";
Chunk += "t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.";
Chunk += "t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.";
Chunk += "t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.";
Chunk += "t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.";
Chunk += "t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.";
Chunk += "t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.";
Chunk += "t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.";
Chunk += "1.";
Chunk += "x.y.t.";
Chunk += "x.y.t.";
Chunk += "x.y.t.";
Chunk += "2.";
Chunk += "x.y.t.s.";
Chunk += "x.y.t.s.";
Chunk += "x.y.t.s.";
Chunk += "x.y.t.s.";
Chunk += "3.";
Chunk += "x.y.t.";
Chunk += "x.y.t.";
Chunk += "4.";
Chunk += "N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.x.y.t.";
Chunk += "N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.x.y.t.x.y.t.x.y.t.";
Chunk += "N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.x.y.t.";
Chunk += "N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.";
Chunk += "5.";
std::string Total = "0.x.y.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.t.f.1.x.y.t.x.y.t.x.y.t.2.x.y.t.s.x.y.t.s.x.y.t.s.x.y.t.s.3.x.y.t.x.y.t.4.N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.x.y.t.N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.x.y.t.x.y.t.x.y.t.N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.x.y.t.N.name.t.f.m.I.x.y.t.x.y.t.x.y.t.5.";
WriteToFile(Total);
return 0;
}
void ReadFile()
{
}
void WriteToFile(std::string chunk)
{
cout << "Writing...\n";
ofstream SaveGame;
SaveGame.open("SaveGame.txt");
std::string MainString = chunk;
cout << MainString;
SaveGame << MainString;
cout << "Done!\n";
}
Что здесь происходит?