2013-08-26 1 views
0

Может ли кто-нибудь сказать мне, почему мой массив не заполняет информацию, которую я пытаюсь получить из своего файла данных? Когда я выводя массив, он просто дает мне мусор. Заранее спасибо.Почему этот файл не читается в моем массиве?

#include <iostream> 
#include <fstream> 

using namespace std; 

// function main begins program execution 
int main() 
{ 
    /* input correct answers file */  
    const int ARRAY_SIZE = 20;  // Array size 
    int correctAnswers[ARRAY_SIZE]; // Array to hold correct answers 
    int count = 0;     // Loop counter variable 
    ifstream inputFile;    // Input file stream object 

    // open the file 
    inputFile.open("c:\\correctanswers.txt"); 

    // read the numbers from the file into the array 
    while (count < ARRAY_SIZE) 
    { 
     inputFile >> correctAnswers[count]; 
     count++; 
    } 

    // close the file 
    inputFile.close(); 

    // display the correct answers 
    cout << "The correct answers are: "; 
    for (int index = 0; index < count; index++) 
     cout << correctAnswers[index] << " "; 
    cout << endl; 
    system ("pause"); 

    return 0; 
} 
+0

Вы пытаетесь использовать Windows/Linux? Что такое сообщение об ошибке? –

+0

Что за файл? Существует ли файл correctanswers.txt? –

+1

Вы не проверяете ошибки на входном потоке. Я предполагаю, что файл не может быть открыт или что он не содержит целых чисел. – paddy

ответ

-1

correctAnswers - это массив int, который вы пытаетесь скопировать на него строки, поступающие из файла. Я предлагаю вам использовать вспомогательную переменную для хранения строки, захваченной из файла, а затем манипулировать ею по своему усмотрению. Кроме того, вы, вероятно, захотите убедиться, что не превысите предельные значения для файлов ...

0

Вы никогда не проверяете, действительно ли поток инициализирован в нужное состояние. Я бы начал с проверки того, способен ли поток открыть данный аргумент: if (inputFile.is_open)

Смежные вопросы