Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Probleme mit dem >> Operator (glaube ich zumindest)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.07.2011, 20:15 Uhr
Raider89



Hallo Leute

Ich bin neu hier und habe gerade damit angefangen C++ zu lernen
Doch jetzt bin ich auf ein Problem gestoßen:
( Ich lernen mit dem Buch : "Einführung in die Programmierung mit C++")

Also ich habe diesen Quellcode aus dem Buch abgeschrieben:

#include "cUsers\N1\Documents\Visual Studio 2008\Projects\std_lib_facilities.h"

int main()
{
cout << "Bitte geben sie Ihren Vornamen und Ihr Alter ein\n";
string first_name;
int age;
cin >> first_name;
cin >> age;
cout << "Hallo" << first_name <<"(Alter" << age <<")\n";
}


Die Header- Datei konnte man sich von einer Website aus dem Buch herunterladen und soll das Lernen vereinfachen oder so

Angeblich kann er den >> Operator nicht zuordnen oder definieren ( Ich bin mir aber nicht sicher ob ich das richtig verstanden habe)

Ich benutze Microsoft Visual Studio 2008 Express unter Win 7

Ich hoffe ihr könnt mir helfen

Gruß Raider
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.07.2011, 20:17 Uhr
Raider89



ich meine natürlich:
c:\Users\N1\Documents\Visual Studio 2008\Projects\std_lib_facilities.h

ohne den Smilie ^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.07.2011, 20:50 Uhr
Tommix



Hallo,
zum einen: Was steht denn in dem zitierten std_lib_facilities.h so drin, und zum zweiten: wie lautet die Fehlermeldung (von wegen, "richtig verstehen")?
Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.07.2011, 20:54 Uhr
Raider89



1>------ Erstellen gestartet: Projekt: Geben sie ihren Namen und alter ein, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>bitte geben sie ihren namen und ihr alter ein.cpp
1>c:\users\n1\documents\visual studio 2008\projects\geben sie ihren namen und alter ein\geben sie ihren namen und alter ein\bitte geben sie ihren namen und ihr alter ein.cpp(1) : error C2006: '#include': Dateinamen erwartet, aber 'Bezeichner' gefunden
1>c:\users\n1\documents\visual studio 2008\projects\geben sie ihren namen und alter ein\geben sie ihren namen und alter ein\bitte geben sie ihren namen und ihr alter ein.cpp(1) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "": No such file or directory
1>Das Buildprotokoll wurde unter "file://c:\Users\N1\Documents\Visual Studio 2008\Projects\Geben sie ihren Namen und alter ein\Geben sie ihren Namen und alter ein\Debug\BuildLog.htm" gespeichert.
1>Geben sie ihren Namen und alter ein - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Das ist die Meldung die ich bei Vs 2008 bekomme

Ich hab std_lib_facilities.h mal mit vs geöffnet


//
// Der vorliegende Code dient zur Unterstützung der Beispiele aus dem Buch
// "Einführung in die Programmierung mit C++" von Bjarne Stroustrup
//

#ifndef STD_LIB_FACILITIES_GUARD
#define STD_LIB_FACILITIES_GUARD 1

#include <iostream>

using namespace std;

//------------------------------------------------------------------------------

// Auf manchen Windows-Maschinen muss keep_window_open() aufgerufen werden,
// um zu verhindern, dass Windows das Fenster schließt, bevor Sie eine Chance hatten,
// die Ausgabe zu lesen.
inline void keep_window_open()
{
cin.get();
}

//------------------------------------------------------------------------------

#endif // STD_LIB_FACILITIES_GUARD


Ich hoffe das hilft :)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.07.2011, 21:17 Uhr
Raider89



ich kriege auch noch diesen Fehler

------ Erstellen gestartet: Projekt: Geben sie ihren Namen und alter ein, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>cin.cpp
1>c:\users\n1\documents\visual studio 2008\projects\geben sie ihren namen und alter ein\geben sie ihren namen und alter ein\cin.cpp(17) : error C2679: Binärer Operator '>>': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)


Bearbeitung von 0xdeadbeef:

Compilerfehler auf Wesentliche zusammengekürzt (es folgte eine lange Liste von vorhandenen, aber unpassenden operator>>-Varianten). Der Thread wurde dadurch sehr unübersichtlich.


Dieser Post wurde am 21.07.2011 um 02:40 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.07.2011, 21:18 Uhr
Raider89



hier gehts weiter:

Bearbeitung von 0xdeadbeef:

Hier stand der zweite Teil der langen Liste unpassender operator>>-Varianten.


Dieser Post wurde am 21.07.2011 um 02:42 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.07.2011, 21:18 Uhr
Raider89



ich hoffe damit kann jemand etwas anfangen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
21.07.2011, 02:37 Uhr
0xdeadbeef
Gott
(Operator)


std_lib_facilities.h ist ein Header, den Stroustrup in seinen Büchern verwendet, um bestimmte Dinge erst später erklären zu müssen (Namensräume zum Beispiel). Du hast da aber eine arg gekürzte Version davon; voll und ganz sieht er so aus.

Ich habe das Buch jetzt nicht gelesen, aber ist es vielleicht so, dass er diese gekürzte Version zu Anfang einmal zeigt, mit einer Bemerkung der Form "Der Header enthält einige Dinge, die in frühen Beispielen benutzt aber erst später erklärt werden, beispielsweise etwas ähnliches wie das hier:"? keep_window_open sieht nämlich eigentlich etwas komplexer aus (und muss das auch, aus Gründen, die wahrscheinlich nicht im ersten Kapitel erläutert werden).

Das Problem wird sein, dass du, um std::string verwenden zu können, neben <iostream> auch den Header <string> brauchst. Stroustrups Header bindet den schon ein, deine gekürzte Version nicht. Es wäre genug, ihn etwa so zu ändern:

C++:
#ifndef STD_LIB_FACILITIES_GUARD
#define STD_LIB_FACILITIES_GUARD 1

#include <iostream>
#include <string> // <-- hier

using namespace std;

//------------------------------------------------------------------------------

// Auf manchen Windows-Maschinen muss keep_window_open() aufgerufen werden,
// um zu verhindern, dass Windows das Fenster schließt, bevor Sie eine Chance hatten,
// die Ausgabe zu lesen.
inline void keep_window_open()
{
cin.get();
}

//------------------------------------------------------------------------------

#endif // STD_LIB_FACILITIES_GUARD


...aber du könntest natürlich auch gleich den nehmen, den Stroustrup dazu anbietet.

Übrigens würde diese vereinfachte Version von keep_window_open mit deinem Codebeispiel schon nicht mehr funktionieren - Rückstände im Eingabestrom.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 21.07.2011 um 02:38 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: