gpt4 book ai didi

C++——错误 C2784 : -- see declaration of 'std::operator <<'

转载 作者:太空宇宙 更新时间:2023-11-04 12:55:49 24 4
gpt4 key购买 nike

<分区>

所以我正在学习如何输出到文件,但无法识别插入运算符“<<”。

所以每次我在下面的代码中使用“OutFile <<”时,visual studio 都会将“<<”标记为无效。

我认为可能是我的 include 语句有问题,但我仔细检查了一下,对我来说似乎并非如此。

完整错误

"1>z:\cst 113 - programming\purdyjex4\purdyjex4.cpp(111): error C2784: 'std::basic_ostream<_Elem,_Traits> &std::operator <<(std::basic_ostream<_Elem,_Traits> &,const std::basic_string<_Elem,_Traits,_Alloc> &)': could not deduce template argument for 'std::basic_ostream<_Elem,_Traits> &' from 'std::ifstream'
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\string(167): note: see declaration of 'std::operator <<'"

我的代码:

//Include - to use input & output on the screen
#include <iostream>

//Include - For file output and input
#include <fstream>

//Include - to use input and Output Manipulators
#include <iomanip>

//Include - to use string variables
#include <string>

//namespace using statement must be included to use the standard header files
using namespace std;

//Constant for programmer's name
const string MY_NAME = "Justin T Purdy";

//Constant for Course & Exercise Number
const string COURSE = "CST 113 - Exercise 4";

//To make outputting headers easier, store character and width for deviders
const int SCREEN_WIDTH = 79;
const char SYMBOL = '*';

//Cost Ratios
const double DAY_COST = 0.1;
const double NIGHT_COST = 0.25;

//Name of files user can open
const string FILE_NAMES[2] = { "Ex4-1.txt","Ex4-2.txt" };


int main(void)
{
//Declare variables; Step 1
ifstream inFile;
ifstream outFile;

//Create variables to be used
//I'm using arrays for some variables
string customerFirstName[3];
string customerLastName[3];
string customerFullName[3];
int fileNumber;
int dayMinutes[3];
int nightMinutes[3];
double totalCosts[3] = { 0 };
double grandTotal = 0;

//Output deviders
cout << setfill(SYMBOL) << setw(SCREEN_WIDTH) << SYMBOL << setfill(' ')
<< endl;

//Get file number from user
cout << "Select from these two file names: " << endl
<< " 1: Ex4-1.txt" << endl << " 2: Ex4-2.txt" << endl;
cout << setfill(SYMBOL) << setw(SCREEN_WIDTH) << SYMBOL << setfill(' ')
<< endl;
cout << "Enter the number of the input file: ";
cin >> fileNumber;

//Check if invalid number, terminate program if number invalid
if (fileNumber > 2)
{
cout << endl << "You have entered a invalid fileNumber and the program terminated.";
return 0;
}

//Open file the user specified
inFile.open(FILE_NAMES[fileNumber]);
outFile.open("Ex4-Out.txt");

//Get data from opened file, put it into variables
inFile >> customerFirstName[1] >> customerLastName[1] >> dayMinutes[1] >> nightMinutes[1]
>> customerFirstName[2] >> customerLastName[2] >> dayMinutes[2] >> nightMinutes[2]
>> customerFirstName[3] >> customerLastName[3] >> dayMinutes[3] >> nightMinutes[3];


//Calculation total costs using data from file
totalCosts[1] = (dayMinutes[1] * DAY_COST) + (nightMinutes[1] * NIGHT_COST);
totalCosts[2] = (dayMinutes[2] * DAY_COST) + (nightMinutes[2] * NIGHT_COST);
totalCosts[3] = (dayMinutes[3] * DAY_COST) + (nightMinutes[3] * NIGHT_COST);
grandTotal = totalCosts[1] + totalCosts[2] + totalCosts[3];


//Output header into output file
outFile << setfill(SYMBOL) << setw(SCREEN_WIDTH) << SYMBOL << setfill(' ')
<< endl << MY_NAME << endl << COURSE << "CELL PHONE BILL"
<< setfill(SYMBOL) << setw(SCREEN_WIDTH) << SYMBOL << setfill(' ');

//Output name of columns to output file
outFile << right << setw(10) << "Phone" << setw(20) << "Name"
<< setw(15) << "Day" << setw(15) << "Night" << setw(15)
<< "Total" << endl << setw(45) << "Minutes" << setw(15)
<< "Minutes" << setw(15) << "Cost" << setfill(SYMBOL) <<
setw(SCREEN_WIDTH) << SYMBOL << setfill(' ');

//Output first row of data
outFile << right << setw(10) << "1" << setw(20) << customerFirstName[1]
<< setw(15) << dayMinutes[1] << setw(15) << nightMinutes[1] << setw(15)
<< totalCosts[1] << endl;

//Output second row of data
outFile << right << setw(10) << "2" << setw(20) << customerFirstName[2]
<< setw(15) << dayMinutes[2] << setw(15) << nightMinutes[2] << setw(15)
<< totalCosts[2] << endl;

//Output third row of data
outFile << right << setw(10) << "3" << setw(20) << customerFirstName[3]
<< setw(15) << dayMinutes[3] << setw(15) << nightMinutes[3] << setw(15)
<< totalCosts[3] << endl;

//Output grand total
outFile << setfill(SYMBOL) << setw(SCREEN_WIDTH) << SYMBOL << setfill(' ')
<< left << "Total family cost:" << right << grandTotal;

//Close file
inFile.close();
outFile.close();

return 0;
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com