从.txt文件读取到c ++中的二维数组

时间:2016-04-19 04:07:21

标签: c++ arrays file input

所以,要么我是一个完全白痴,这是正确地盯着我,但我似乎无法找到任何我可以在谷歌或这里找到的资源。

我有一个文本文件,其中包含几行整数,每个整数用空格分隔,我想将这些整数读入一个数组,其中每个新行是数组的第一个维度,每个整数在该行上保存到第二维。

可能用最糟糕的术语来解释,抱歉。

我的文本文件如下所示:

100 200 300 400 500
101 202 303 404 505
111 222 333 444 555

我希望得到的数组是这样的:

int myArray[3][5] = {{100, 200, 300, 400, 500},
                     {101, 202, 303, 404, 505},
                     {111, 222, 333, 444, 555}};

2 个答案:

答案 0 :(得分:1)

我相信

org.jetbrains.android.uipreview.RenderingException: Failed to load the LayoutLib: com/android/layoutlib/bridge/Bridge : Unsupported major.minor version 52.0
at org.jetbrains.android.uipreview.LayoutLibraryLoader.load(LayoutLibraryLoader.java:90) 
at org.jetbrains.android.sdk.AndroidTargetData.getLayoutLibrary(AndroidTargetData.java:180) 
at com.android.tools.idea.rendering.RenderService.createTask(RenderService.java:164)    at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$7.run(AndroidDesignerEditorPanel.java:514)    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)  at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)  at com.intellij.util.ui.update.MergingUpdateQueue$3.run(MergingUpdateQueue.java:271) 
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:286) 
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:244) 
at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:234) 
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) 
at com.intellij.util.Alarm$Request$1.run(Alarm.java:352) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 
at java.lang.Thread.run(Thread.java:695)

应该做你需要的。

答案 1 :(得分:0)

在您的情况下,您可以执行以下操作:

ifstream file { "file.txt" };
if (!file.is_open()) return -1;

int my_array [3][5]{};
for (int i{}; i != 3; ++i) {
    for (int j{}; j != 5; ++j) {
        file >> my_array[i][j];
    }
}

更好的方法是使用std::vector

vector<int> my_array;
int num { 0 };
while (file >> num)
    my_array.emplace_back(num);