簡體   English   中英

從文件讀取到幾個數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM