2016-03-28 2 views
0

im используя fstream, чтобы получить визуальную студию для чтения файла с примерно 100 строками повторяющейся информации, только разные значения каждой строки. Я использую переменную count, чтобы отслеживать, сколько раз это читается, но она продолжает говорить 0. Я знаю, что файл открывается, потому что я поставил оператор If, чтобы проверить меня. и да файл im, читающий из, также является местоположением моего файла cpp. Если бы вы могли взглянуть и рассказать мне, что я пропустил, я был бы признателен!ifstream дает мне проблемы

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

int main() { 
//file variables 
string date; 
int rainIn, minTempF, maxTempF; 

//variables 
int count = 0; 
double totalRain = 0; 
double averageMinimumTemp = 0; 
double averageMaximumTemp = 0; 
double overallMaxTemp = 0; 
double overallMinTemp = 0; 

ifstream inFile("2014WeatherData.txt"); 

if (!inFile) { 
    cout << "Error: Input File Cannot Be Opened\n"; 
    exit(EXIT_FAILURE); 
} 

//read file records 
while (inFile >> date >> rainIn >> maxTempF >> minTempF) { 
    count++ 
} 

cout << count << " Records read\n"; 

return 0; 
} 

im только в информатике 1, поэтому я все еще изучаю любую обратную связь, будет очень благодарен !! также здесь несколько строк из TXT документа им пытаются читать

20140101 0.00 69.08 31.10 
20140102 0.00 42.98 25.16 
20140103 0.00 51.98 25.16 
+0

Почему вы не вставляете строку 'cout << count ...' внутри цикла, чтобы убедиться, что все записи успешно прочитаны? Мое предположение - это проскальзывание. – Galik

+0

Это может помочь опубликовать первые несколько строк файла, который вы читаете (cut'n'paste, что на самом деле * в файле - не обманывать) – Galik

+0

ну, у меня есть инструкция if, чтобы проверить, есть ли файл открытие. im не получает сообщение об ошибке. когда я беру txt-документ из папки с содержимым, я действительно получаю сообщение. Но когда я вернул txt-документ, я не получил сообщение – Helios093

ответ

1

Проблема в том, что ...

int rainIn, minTempF, maxTempF; 

... создает int Эгер переменные, и вы пытаетесь прочитать значения плавающей запятой в них. Измените их на double s. (Вам также понадобится точка с запятой после count++).

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