0
int lineInputs = 0;

cin >> lineInputs;

int whatever = 0;

char* myArray = new char[arrayElements*lineInputs];

int j =0;

for(int i = 0; i < lineInputs; i++)
{
        cin >> whatever;
    for(j; j<total; j+=39)
    {
        for(int nom=0; j<arrayElements; nom++)
        {
            cin >> myArray[j];
        }
    }

}

在我的 forloop 中说我有lineInputs = 4total = 156

这意味着我们这样做了 4 次,我们想在我的数组中插入 156 个字符。但是我们想让它每 40 个字符继续输入数组。

基本上我们需要将此输入插入到数组中,但我觉得我的 forloops 搞砸了。这将是输入

4 
1 
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 
2 
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT 
3 
HHTTTHHTTTHTHHTHHTTHTTTHHHTHTTHTTHTTTHTH 
4 
HTHTHHHTHHHTHTHHHHTTTHTTTTTHHTTTTHTHHHHT

第一行 4 表示这 40 个字符行中的 4 个。字符行上方的数字仅表示第 1 2 3 4 行等。

我怎样才能尝试这个权利?

所以数组基本上看起来像这样。

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTHHTTTHHTTTHTHHTHHTTHTTTHHHTHTTHTTHTTTHTHHTHTHHHTHHHTHTHHHHTTTHTTTTTHHTTTTHTHHHHT

4

1 回答 1

1

您正在犯与您在其他问题中所犯相同的基本错误,即未能正确处理输入数组。您正在反复读入 的前 40 个字符myArray。您需要做的是将第一行读入前 40 个字符,将第二行读入字符 40 到 79,等等。

更好的是,将其设为二维数组,这样您就不必费心计算索引了。

更好的是,使它成为一个数组std::string而不是一个数组char

于 2012-12-28T11:50:44.607 回答