2012-12-28 215 views
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]; 
     } 
    } 

} 

在我的for循环的说,我有lineInputs = 4total = 156for循环线阵列

含义4倍,我们做到这一点,我们要插入字符156到我的阵列。但是我们希望能够让每40个字符继续进入阵列。

按照我们的要求,我们需要将这个输入插入到数组中,但我觉得我的forloops已经搞乱了。 这将是输入

4 
1 
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 
2 
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT 
3 
HHTTTHHTTTHTHHTHHTTHTTTHHHTHTTHTTHTTTHTH 
4 
HTHTHHHTHHHTHTHHHHTTTHTTTTTHHTTTTHTHHHHT 

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

我该如何尝试这个权利?

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

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTHHTTTHHTTTHTHHTHHTTHTTTHHHTHTTHTTHTTTHTHHTHTHHHTHHHTHTHHHHTTTHTTTTTHHTTTTHTHHHHT

+1

我建议停止混合C和C++:使用'std :: string'而不是'char *'。 (这不能解决你的问题,但它伤害了我的眼睛)顺便说一下'arrayElements'是什么?它没有在任何地方指定。 – stefan

回答

1

你是让你在你的其他问题,这是不能正确对待输入数组由相同的根本错误。您重复读入myArray的前40个字符。你需要做的是将第一行写入前40个字符,第二行写入字符40至79等。

更好的是,使它成为一个二维数组,以便您不必四处乱拨与计算指数。

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

+0

为什么字符串会更好只是好奇? – mystycs

+0

其实2维听起来不错,我刚刚意识到。我试着实现这一点。 – mystycs

+0

@sonicboom对于char *与std :: string:请参阅http://stackoverflow.com/questions/801209/c-char-vs-stdstring – stefan