2013-06-20 2 views
0

Сложное время, пытаясь выяснить, что я делаю неправильно при попытке открыть файл «test.dat». Кажется, это открытие, но не чтение, чтобы дать результат. Предполагается, что программа считывает частоту чисел.Ошибка открытия .dat-файла

#include <iostream> 
#include <vector> 
#include <fstream> 
#include <string> 
using namespace std; 


int main() 
{ 
string fileName; 
int aTest; 

cout << "Enter a File Name: "; 
cin >> fileName; 

ifstream inFile (fileName.c_str()); 
if (! inFile) 
{ 
cout << "!!Error in opening file 'test.dat'"<< endl; 
} 

vector<int> test(101, 0); 
while(inFile >> aTest) { 
test[aTest]++; 
} 

system("pause"); 
return 0; 
} 

test.dat файл

75 85 90 100 
60 90 100 85 
75 35 60 90 
100 90 90 90 
60 50 70 85 
75 90 90 70 

Это как мой вывод выглядит прямо сейчас

Enter a File Name: test.dat 
Press any key to continue . . . 

так, как это предполагают, чтобы выглядеть

Enter file name: test.dat 
100: 3 
90: 8 
85: 3 
75: 3 
70: 2 
60: 3 
50: 1 
35: 1 
+0

Ваша программа отлично выглядит, но вы ничего не печатаете, так почему вы ожидаете выхода? –

+0

Ummmm, как насчет того, чтобы вы отображали содержимое массива после считывания значений в ... – paddy

+0

@newbie, что это имеет отношение к чему-либо? –

ответ

1

Ваша программа не пытается ничего распечатать, поэтому неудивительно, что выхода нет. Добавьте петлю и распечатайте ненулевые записи:

for (int i = 100; i >= 0; i--) 
{ 
    if (test[i]) 
    { 
     cout << i << ": " << test[i] << endl; 
    } 
} 

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

  • Нет связанных вопросов^_^