所以我测试了一个小程序,它读取的文件包含几行,每行包含一行或两个字符,并根据行中的字符输出方向箭头(Think DDR输出样式:&# 34;< ^ v>")
只是阅读和输出文本文件中出现的行很好,但是我无法编辑它们出现的方式而没有得到超级通用的调试错误,没有代码或任何东西告诉我问题是什么。这只是我不允许做的事情,还是应该用数组替换我的字符串?
以下代码:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void output(string raw);
int main()
{
string content_line;
ifstream file;
file.open("level1.txt", ios::out);
if (file.is_open())
{
while (getline(file, content_line))
{
output(content_line);
}
file.close();
}
return 0;
}
void output(string raw)
{
string row = " ";
for (int i = 0; i <= raw.size(); i++)
{
switch (raw.at(i))
{
case 'l': row.at(0) = '<';
break;
case 'u': row.at(2) = '^';
break;
case 'd': row.at(4) = 'v';
break;
case 'r': row.at(6) = '>';
break;
}
}
cout << row << '\n';
}
现在出现的文本文件只是:
u
d
l
r
ud
lr
ul
dr