2015-11-18 1 views
0
#include <iostream> 
#include <ostream> 
#include <istream> 
#include <ostream> 
#include <fstream> 
#include <sstream> 
#include <string> 
#include <iomanip>  


void GetOutputFileStream(std::ofstream * fout, std::string filename); 
void PrintStatistics(std::ostream & fout, 
    int numUsed, 
    int numNew, 
    double newTotalPrice, 
    double newTotalMileage, 
    double usedTotalPrice, 
    double usedTotalMileage); 


int main() 
{ 

double newTotalPrice = 33333; 
double newTotalMileage = 44444; 
double usedTotalPrice = 22222; 
double usedTotalMileage = 99999; 
int numUsed = 2; 
int numNew = 3; 
std::ofstream fout; // 'f'ile out - fout 
std::string filename = "statistics.txt"; 
GetOutputFileStream(&fout, filename); 
// Print to screen 
PrintStatistics(std::cout, 
    numUsed, 
    numNew, 
    newTotalPrice, 
    newTotalMileage, 
    usedTotalPrice, 
    usedTotalMileage); 
// Print to file 
PrintStatistics(fout, 
    numUsed, 
    numNew, 
    newTotalPrice, 
    newTotalMileage, 
    usedTotalPrice, 
    usedTotalMileage); 


std::cout << "Press ENTER to continue"; 
std::cin.get(); 

return 0; 
} 

void GetOutputFileStream(std::ofstream * fout, std::string filename) 
{ 
    fout->open(filename, std::ios::out); 
} 
void PrintStatistics(std::ostream & fout, 
int numUsed, 
int numNew, 
double newTotalPrice, 
double newTotalMileage, 
double usedTotalPrice, 
double usedTotalMileage) 
{ 

} 

Печатная статистика пуста, потому что я хочу исправить эту ошибку, прежде чем начинать запись функции.error c2065: 'filename': uneclared identifier

Я продолжаю прием: ошибка C2065: 'имя файла': необъявленный идентификатор

Однако всякий раз, когда я пытаюсь испытывать GetOutputFileStream (& FOUT, имя файла); чтобы убедиться, что его функциональная используя выборочная механика в междунар основных(), как показано ниже:

std::ofstream fout; // 'f'ile out - fout 
std::string filename = "newFile.txt"; 
GetOutputFileStream(&fout, filename); 
fout << "This is my new file!\n"; 
fout << "This is on a new line!"; 
fout.close(); 

я не получаю никаких ошибок и функция ведет себя как его предположит. Может кто-то указать мне верное направление? Спасибо.

+2

Вы пытаетесь использовать GetOutputFileStream и PrintStatistics, прежде чем объявить их. Это ваш фактический код? –

+1

[Компиляция штрафа] (http://cpp.sh/8oms) после размещения 'GetOutputFileStream' и' PrintStatistics' над 'main()'. Это действительно код, который дает вам ошибку, о которой вы упомянули? – crayzeewulf

+0

Дело в том, что пример кода, который я предоставил, - это то, что предоставил инструктор. Мы должны получить тот же результат, что и инструктор, используя пример кода. Может ли инструктор просто убрать образец кода неправильно или есть ошибка с моим кодом? Благодаря! – alekbiz

ответ

1

Это не filename, что вызывает у вас проблемы. Вы не определите следующие функции, прежде чем использовать их:

void GetOutputFileStream(std::ofstream * fout, std::string filename); 
void PrintStatistics(...); 

Вы должны прототипу их, или определить их, прежде чем они используются. See here for more info.

Here are your actual compiler errors.

And here is the same function with one way of fixing them.

+0

Эй, это была моя ошибка. Мой код вызывает функции до main(), которые я забыл включить в мой пост. Я редактировал свой код. Не могли бы вы снова взглянуть на это? Сожалею. – alekbiz

+0

@alekbiz Тогда в коде нет ничего плохого. Код в вашем вопросе не вызывает ошибок ... –

+0

Я дам вам кредит на ответ, так как вы прилагаете усилия, чтобы помочь мне и направлять меня на то, что может быть моей проблемой. – alekbiz

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