首先我不是C++專家,我仍然在學習,所以任何見解都將不勝感激。這個問題起初似乎是一個簡單的問題,但幾個月後,我仍然無法找到一個可行的解決方案。我期望它有一個簡單的答案,我只是俯視。C++從文件中讀取文本並將字符串解析爲int數組
下面是我在閱讀類似的線程在這裏和其他網站上寫的一些代碼。基本上我試圖從包含GF256乘法數組的文本文件中讀取(每256行256行)。逐行閱讀似乎只是很好地證明了這一行(我知道我需要的是每行所需的字符串。這是我的問題。我似乎無法找到一種方法來解析這個字符串到一個int數組。我有很多這樣的代碼迭代,嘗試了不同的嘗試,但都沒有爲我工作。我認爲這是一個非常簡單的解決方案。再次,任何有關這個問題的見解將不勝感激。
int kGF = 0;
int multiGFtemp[256 * 256];
int n;
int main()
{
string multi_;
ifstream fileGF("GF256MultiTable.txt");
if(fileGF.is_open())
{
while(getline(fileGF,multi_))
{
cout << multi_ << endl;
cin.get();
}
fileGF.close();
}
else
{
cout << "File is not open" << endl;
}
cin.get();
cout << multi_;
stringstream stream2(multi_);
while(stream2)
{
stream2 >> n;
cout << n << endl;
multiGFtemp[kGF] = n;
kGF++;
}
for(int k = 0; k < 256 * 256; k++)
{
/*
cout << multiGFtemp[k] << " ";
*/
}
cin.get();
return 0;
}
在你提供的代碼中,有唯一一個可能被處理的行是最後一個,當你用'getline'讀取文本時,你應該處理它。考慮編寫一個函數,它將一行(字符串)和一個數組作爲參數,並用第一個的內容填充後者,從文本行讀取數字的問題可以通過使用「CSV C++」搜索並查看其他人已經做到了。 – riodoro1
您可以顯示文件如何格式化的示例嗎? – NathanOliver
這是一個格式爲.txt的文件,其中;是一條新線。 0 0 0 0 ...; 1 1 1 1 1 ...; 1 2 3 5 ...;等等。每個數字之間有一個未定義的空白空間,但每個256個編號行末尾都有一個明確的新行。 – pfe