[英]reading from file into several arrays
我想編寫一個c ++代碼,該代碼讀取文本文件test.txt並將其內容寫入多個數組。 該文件如下所示:
[7,13,17]
[[0,1,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
[1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0],
[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],
[0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0]]
我寫的代碼像
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int parameter[10];
int physical[7][7];
const char* filename;
filename = "src/cplex_N7.txt";
ifstream f(filename, ios::in);
if (!f) {
cerr << "No such file: " << filename << endl;
throw(1);
}
f >> parameter >> physical ;
// cout content
return 0;
}
但我總是遇到錯誤和錯誤的輸出,請您以最佳方式幫助您。 我的意思是我可以在沒有for循環或沒有處理逗號和分隔符的情況下讀取文件。
您不能以這種方式使用琴弦。 似乎您正在使用try / error方法學習c ++,這是學習編程語言的最糟糕方法。 我寫了一個小樣來讀取您格式的數字行:
string x = "1,0,1,0,1,0,1,0,1,0";
int array[10];
for(int i = 0; i < x.size(); i+=2)
array[i / 2] = x[i] - '0';
數字在偶數索引處,因此我們應該在字符串的偶數姿勢上進行迭代。 它們每個都是一個字符,我們可以通過從“ 0”中減去它們來獲得int值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.