fehlermeldung...aber was heißt die?
-
--------------------Configuration: zeahler - Win32 Debug-------------------- Compiling... main.cpp F:\Programmierung\c++\visual cpp\zeahler\main.cpp(29) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptable conversion) F:\Programmierung\c++\visual cpp\zeahler\main.cpp(30) : error C2676: binary '==' : 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' does not define this operator or a conversion to a type acceptable to the pr edefined operator Error executing cl.exe. zeahler.exe - 2 error(s), 0 warning(s)
plz help!
-
Poste mal ein Code-Fragment von der Stelle an der die Fehler auftreten.
-
1. Es gibt für das Objekt das in dieser Zeile links steht keinen op>> für std::string - verwendest du dort cin?
2. Du vergleichst einen std::string mit einem anderen Typ der den op== nicht (für std::string) defniert hat. Vergleichst du eventuell ein einzelnes Zeichen mit einem std::string?
MfG SideWinder
-
hier der code
cout <<"Nochmal? ja = 'j'. nein = 'n'.\n"; cin >> ab; if (ab == "j") // fehler hier { // und hier main(); }
ja ich benutz cin
das tolle is das es in def c++ funzt!ja ich vergeich ein zeichen mit einem string! soll ich den einfach 2 zeichen draus machen? in meinem fall ja und nein?
-
isses ein char?
mach mal
ab == 'j'
-
kommt immernoch die gleich fehlermeldung!
-
strcmp() ??
-
fgdsfg schrieb:
strcmp() ??
was sill das heißen???
ich bin ein bischen c++ noob!
-
if!(strcmp(deinstring, 'j'))
-
... noch besser...
ich weß immer nochned was du meinst
tut mir jaecht leid
-
installier dir mal die msdn
strmcp() ist eine funktion die 2 strings vergleicht, hier die Funktionsweise
**
Routine Required Header Compatibility
strcmp <string.h> ANSI, Win 95, Win NT[...]
Return Value
The return value for each of these functions indicates the lexicographic relation of string1 to string2.
Value Relationship of string1 to string2
< 0 string1 less than string2
0 string1 identical to string2
> 0 string1 greater than string2On an error, _mbscmp returns _NLSCMPERROR, which is defined in STRING.H and MBSTRING.H.
Parameters
string1, string2
Null-terminated strings to compare
**
D.h. du willst haben deinstring == 'j', also sollen sie identisch (identical == 0) sein, sprich du rufst die funktion auf
strcmp(deinstring, 'j'), die liefert jetzt, falls die identisch sind 0 zurück, also
if(strcmp(deinstring, 'j') == 0)
oder
if!(strcmp(deinstring, 'j'))
alles klar
?
-
warum ned gleich so ^^
aber wen ich das mach kommt ne andere fehlermeldung!
geht also auch ned
-
Quellcode posten
-
mkey
#include <iostream> #include <time.h> using namespace std; int main() { //open main //Initialisieren der Variablen int i; int v; string a; time_t sec; time_t sec2; //Abfrage wie weit gezählt werden sol cout << "Wie weit soll gezealt werden?\n"; cin >> v; sec = time (NULL); //Starteit wird gespeichert //Das zählen selbst for (i=0; i<v; i++) { //open for cout << i << "\n"; } //close for sec2 = time (NULL); //Endzeit wird gespeichert cout <<"Dein PC hat in "<< sec2-sec << " sekunden bis " << i << " gezeahlt.\n"; //Ausgabe wielang und bis wo //Soll nochmal gezählt werden cout <<"Nochmal? ja = 'j'. nein = 'n'.\n"; cin >> a; if (a == "j") { //open if main(); } //open if else { //open else return 0; } //close else } //close main
ich hab mich bemüht es übersichtlich zu halten ^^
-
Wie soll er denn einen std::string mit strcmp() vergleichen
Vergiss das alles wieder.
1. op>> ist nicht überladen, benütze stattdessen:
string mystring; getline(cin,mystring);
2. Ein einzelnes Zeichen kann man icht mit einem ganzen String vergleichen, vergleiche stattdessen String mit String:
if(mystring == "j") // "" = String, '' = Zeichen
MfG SideWinder
-
was hab ich denn anderes geschrieben? bzw ich sehe meinen fehler nicht? dazu hab ich doch zuerst geraten
-
muss ich denn noc was anderes einbinden? es geht immer nochned!
-
1. Posting: Wieder einfache Anführungszeichen benützt
2. Posting: strcmp() - sowas braucht man mit std::string eigentlich nie
3. Posting: Wieder strcmp() und nochmals einfache Anführungszeichen, op! vor der if-Bedingung (vor der Klammer)
4. Posting: Siehe 3. PostingAlso wo bitte sind deine richtigen Antworten?
MfG SideWinder
-
string a; cout <<"Nochmal? ja = 'j'. nein = 'n'.\n"; cin >> a; if (a == "j")
mach daraus:
string a; cout <<"Nochmal? ja = 'j'. nein = 'n'.\n"; cin >> a; if(!(strcmp(a.c_str(), "j")))
Ka was daran falsch sein soll
-
FlameDiver schrieb:
muss ich denn noc was anderes einbinden? es geht immer nochned!
1. Fehler
2. Genaue Zeilenangaben wo der Fehler auftrittMfG SideWinder
-
LESEN !!!
MfG SideWinder