c++ - 无法转到文本换行中的新行

标签 c++

我不知道自己做错了什么,也无法自己解决。

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/

相关文章:

c++ - 将 char 变量传递给类型字符串函数

c++ - QPainter 构图在背景下无法按预期工作

c++ - 访问并调用 std::function 的变体

c++ - Eclipse CDT : running C++ program not showing anything in the console! 为什么?

c++ - 重载++ 运算符以递增迭代器

C++ 未声明的标识符 vector

c++ - 在对象的指针 vector 上使用 STL 算法 (C++)

c++ - 我可以将字符串附加到文件的特定行吗?

c++模板函数参数推导和函数解析

c++ - 不同对象的 vector 及其迭代器