我正在編寫一個程序,它需要一個文本文件和一個廣告活動的結果,並且需要爲4種不同的人口統計信息找到活動的平均評分。我想我已經明白,只是努力從文件中獲取數據並將其轉換爲char和int變量。我是否需要將它全部讀爲字符串,然後轉換或者可以將它們讀入這些變量中?需要幫助從文件中獲取char和int數據
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
int main(){
//declare vars
ifstream fileIn;
string path;
string name;
char yn;
int age;
double rating;
double rate1 = 0;
double rate1Count = 0;
double avg1 = 0;
double rate2 = 0;
double rate2Count = 0;
double avg2 = 0;
double rate3 = 0;
double rate3Count = 0;
double avg3 = 0;
double rate4 = 0;
double rate4Count = 0;
double avg4 = 0;
double totalAvg = 0;
cout << fixed << showpoint << setprecision(2);
// prompt user
cout << "Please enter a path to the text file with results: ";
// get path
cin >> path;
cout << endl;
// open a file for input
fileIn.open(path);
// error message for bad file
if (!fileIn.is_open()){
cout << "Unable to open file." << endl;
getchar();
getchar();
return 0;
}
// read and echo to screen
cout << ifstream(path);
// restore the file
fileIn.clear();
fileIn.seekg(0);
cout << endl << endl;
// get average for demos
while (!fileIn.eof){
fileIn >> name;
fileIn >> yn;
fileIn >> age;
fileIn >> rating;
if (yn != 121 && age < 18){
rate1 += rating;
rate1Count++;
}
if (yn == 121 && age < 18){
rate2 += rating;
rate2Count++;
}
if (yn != 121 && age >= 18){
rate3 += rating;
rate3Count++;
}
if (yn == 121 && age >= 18){
rate4 += rating;
rate4Count++;
}
}
avg1 = rate1/rate1Count;
avg2 = rate2/rate2Count;
avg3 = rate3/rate3Count;
avg4 = rate4/rate4Count;
cout << yn << age << rating;
// pause and exit
getchar();
getchar();
return 0;
}
文本文件
貝利ý16 68
哈里森Ñ17 71
格蘭特-Y 20 75
彼得森N 21 69
許-Y 20個79個
鮑爾斯ý15 75
安德森Ñ33 64
阮N 16 68
夏普N 14 75
瓊斯ý29 75
McMillan N 19 8
Gabriel N 20 62
當你在這裏問一個問題時,你應該說出你觀察到了什麼具體問題......因爲你沒有告訴我們你的文件輸入的哪個方面不起作用,也就是說你有什麼問題觀察你設法閱讀的數據,無論是永久循環還是崩潰等等。 –