我正在尝试将一个较大的字符串写入.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.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.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";
}
我看到一些乱码:
Sorry, I am unable to translate the given text as it seems to be a string of random characters and symbols with no clear meaning or context. Please provide me with a valid text in Chinese that needs to be translated.
不用说,这不是我想要的。下面是程序的全部代码;请注意,无论我是使用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";
}
这里发生了什么?