C++ 如何解决代码中的以下错误?

C++ 如何解决代码中的以下错误?,c++,C++,我的代码: #include<iostream> #include<conio.h> using namespace std; int main() { int a; while ((cin >> a)) { if (a == 0) break; char inp[401]; cin >> inp; for (int i = 0; i

我的代码:

#include<iostream>
#include<conio.h>
using namespace std;

int main()
{
    int a;
    while ((cin >> a))
    {
        if (a == 0)
            break;
        char inp[401];
        cin >> inp;
        for (int i = 0; i < a; i += 1)
        {
            for (int j = i; j < 400; j += a)
            {
                if (inp[j] == '\0')
                    break;

                cout << inp[j] << endl;
            }
        }
        cout << endl;

    }
    getchar();
    return 0;
}
预期产出:

theresnoplacelikehomeonasnowynightx

你的问题很神秘,就像你试图解决的解密问题一样。下面的代码为给定的输入生成预期的输出

#include<iostream>
#include<conio.h>
using namespace std;

int main()
{
    int a;
    while ((cin>>a))
    {
        if (a == 0)
            break;
        string inp;
        cin >> inp;
        int f = 9,s=1;
        int inc = f;
        for(int i = 0; i < a; i++)
        {
            for (int j = i; j  < inp.length() ; )
            {
                cout << inp[j];
                j += inc;
                inc = inc==f?s:f;
            }
            f-=2;
            s+=2;
            inc = f;
        }
        cout << endl;
    }
    getchar();
    return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
INTA;
而((cin>>a))
{
如果(a==0)
打破
字符串inp;
cin>>inp;
int f=9,s=1;
int inc=f;
for(int i=0;i这些循环是不是很可疑,你想在这里实现什么?我正在尝试交替输出给定字符串的下一个第10个元素和第5个元素。@Discodeser你能提供示例输入和预期输出吗?使用调试器。这是学习使用调试器的一个很好的候选者。这比跟踪一个字符串的执行要好得多手动nd变量。您没有检查键入的文本的长度。根据输入,键入的字母少于400个,但循环可能会通过,特别是如果您在输入之前没有用“\0”填充数组。
#include<iostream>
#include<conio.h>
using namespace std;

int main()
{
    int a;
    while ((cin>>a))
    {
        if (a == 0)
            break;
        string inp;
        cin >> inp;
        int f = 9,s=1;
        int inc = f;
        for(int i = 0; i < a; i++)
        {
            for (int j = i; j  < inp.length() ; )
            {
                cout << inp[j];
                j += inc;
                inc = inc==f?s:f;
            }
            f-=2;
            s+=2;
            inc = f;
        }
        cout << endl;
    }
    getchar();
    return 0;
}