我有一個字符串數組,它保留從文件讀取的數據。它由76條線組成。將數組分成多個數組C++
我想要做的是將它們存儲在不同的數組中。 類似於從第21行到第31行的1個陣列。第31到第41個陣列。我怎麼辦... plz幫助
我想將70行分成7個數組,每個數組包含10行。並做到這一點,而無需使用矢量
但
我有一個字符串數組,它保留從文件讀取的數據。它由76條線組成。將數組分成多個數組C++
我想要做的是將它們存儲在不同的數組中。 類似於從第21行到第31行的1個陣列。第31到第41個陣列。我怎麼辦... plz幫助
我想將70行分成7個數組,每個數組包含10行。並做到這一點,而無需使用矢量
但
您使用等於運算==
並沒有工作。在整個循環執行中,i
將僅等於6次中的一個值。只有當i
是11
,22
,33
,44
,55
或66
;對於任何其他值i
您的循環將做沒有。
您可能改爲使用<
。
我想知道爲什麼你刪除了該評論。看起來我應該注意。 – chris
事情是這樣的:
getline(ol, arr[i/11][i%11]);
其中ARR是std::vector<std::string>
個std::vector
。或者是數組字符串的數組。
還有另一種方法是:
while (1) {
std::string *ptr;
if (i < 11) ptr = arr1;
else if (i < 22) ptr = arr2;
// long list of arrays
getline(ol, ptr[i%11]);
// increment i, break on eof...
}
由於某些未知原因,載體已經不存在。 – chris
我解決了我的自我。首先在一個循環中初始化兩個變量, 例如:for(int i = start; j = 0; i
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
string arr[8][10];
int i = 0, j = 0;
ifstream ol("a.txt");
while(getline(ol, arr[i][j]))
{
++j;
if(j == 10)
{
++i;
j = 0;
}
}
}
這是假設你沒有超過80行。
[Not this again。](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – chris
7 * 10!= 77 ..你想做嗎 ? – asheeshr
你有沒有考慮過使用'std :: vector>>(或'std :: map >>')作爲你的容器?要麼會讓你的生活更輕鬆。並按照@chris留給你的鏈接,它會爲你節省一個痛苦的世界。 –
Johnsyweb