我不知道自己做错了什么,也无法自己解决。
void text_printer(char text[], int wrap_size)
{
bool space_check;
for (int sub = 0; text[sub] != '\0'; sub++)
{
space_check = false;
if (sub % wrap_size == 0 && sub != 0)
space_check = true;
if (space_check == true && text[sub] == ' ')
{
cout << endl;
}
else
{
cout << text[sub];
}
}
}
第二个 if 语句没有按预期执行。
ah yes you are here for tea
如果我将它传递给它,它在输出时不会改变。
它编译得很好并且没有错误所以我认为这是我的代码的问题,但我无法弄清楚它是什么。
最佳答案
您的代码中存在一些问题。我将描述其中之一。 @artm 描述了另一个。如果 wrap_size
是 9 并且输入行类似于“12345678901234567 12 45 78 01”会怎样?然后你的代码将像这样拆分它
12345678901234567
12
45 78 01
我想这不是你想要的而且必须是
12345678901234567
12 45 78
01
所以正确的解决方案应该如下所示
void text_printer(char text[], int wrap_size)
{
for (int sub = 0, count = 0; text[sub] != '\0'; sub++, count++)
{
bool space_check = count >= wrap_size;
if (space_check && text[sub] == ' ')
{
cout << endl;
count = 0;
}
else
{
cout << text[sub];
}
}
}
关于c++ - 无法转到文本换行中的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53789572/