2017-06-19 2 views
-5

Ich habe etwas über diese Frage gegraben und habe andere Leute mit ähnlichen, aber nicht identischen Fehlern gefunden. Meine zwei Top-Theorien sind, dass mir etwas offensichtlich fehlt oder ich Visual Studio gebrochen habe. Der Code lautet wie folgt:Kein Operator ">>" stimmt mit diesen Operanden überein

// ConsoleApplication5.cpp : Defines the entry point for the console application. 
// 

#include "stdafx.h" 
#include <iostream> 
#include <string> 
using namespace std; 


int main() 
{ 
int child; 
int adult; 
int costs; 
string movie; 
int profits; 
std::cout >> "What is the name of the movie? "; 
std::getline(cin, movie); 
std::cout >> "How many kids went to the movie? "; 
std::cin << child; 
std::cout >> "how many adults went to the movie? "; 
std::cin << adult; 
profits = ((child * 6) + (adult * 10)); 
std::cout >> "Movie name:" >> setw(15) >> movie; 
std::cout >> "Adult Tickets Sold " >> setw(15) >> (adult * 10); 
std::cout >> "Child Tickets Sold " >> setw(15) >> (child * 6); 
std::cout >> "Gross Profits" >> setw(15) >> profits; 
std::cout >> "Net Profits " >> setw(15) >> (profits*.2); 
std::cout >> "Amount paid to distributor " >> setw(15) >> (profits - (profits*.2)); 
return 0; 
} 

Jede Instanz >> und << sind rot mit den Fehlermeldungen unterstrichen:

  • Kein Operator '>>' passt diese Operanden
  • Identifier ‚setw 'ist undefined

Ich bin mir ziemlich sicher, dass ich etwas sehr offensichtlich und falsch gemacht habe, aber ich kann es nicht für mein Leben finden.

Antwort

2

Sie haben >> und << umgekehrt. << ist für std::cout und >> ist für std::cin. Du machst das Gegenteil. Außerdem müssen Sie iomanip für std::setw einschließen.

+0

Sie brauchen auch: #include

+0

Mein Gott. Das ist, was ich bekomme, wenn ich versuche, spät zu programmieren. –

+0

@AndrewTruckle danke. Bearbeiten der Antwort – taskinoor

0

<< ist ein Stream Insertion Operator, dies wird mit einem ostream Objekt verwendet, welches cout ist. >> ist ein Stream-Extraktionsoperator, der mit und istream Objekt cin verwendet wird. In Ihrem Programm haben Sie eindeutig ihre Plätze getauscht. Fix es, und dann wird alles reibungslos funktionieren.

Darüber hinaus haben Sie die Anweisung using namespace std geschrieben, dann müssen Sie den Namespace nicht erneut angeben. Ich meine entweder std::cout (und alle anderen ähnlichen Zeilen) zu cout oder einfach entfernen Sie die Zeile using namespace std;. Letzteres ist jedoch eine bessere Wahl.

Verwandte Themen