VC++ operator



  • Cybertec schrieb:

    Also bei std::cin kommt nach dem >> nicht mehr das std::string, sondern nur noch die Variable a. ...

    Hm, das würde aber etwas an der Semantik des Programms drehen (auch wenn Kira vermutlich genau das vorhatte).

    @Kira
    Wenn du std::string verwendest solltest du auch darauf achten die richtigen Header einzubinden, damit std::string bekannt wird, dann "funktioniert" deine Konstruktion auch. Ich hoffe dir ist aber klar, dass du damit ein temporäres string-Objekt erzeugst, welches mit a initialisiert wird und das du später nicht mehr ansprechen kannst.



  • Michael E. schrieb:

    Außerdem solltest du <string> inkludieren und <stdio.h>, <tchar.h>, <conio.h> und <cstdlib> rausschmeißen.

    tchar.h brauchts schon fürs _tmain(..) und TCHAR.



  • Ich habe es jetzt den Quellkot geändert in

    string a;
    //...
    std::cin>>a;  //fehler bleibt trozdem
    //...
    

    ???
    Was nun?

    Kira



  • weils noch immer std::string a; ist.

    Ich sags mal deutlicher sonst ist es unklar: INCLUDE STRING!

    Edit, ich gehe auf Nummer sicher und poste einen funktionierenden code...

    #include <tchar.h>
    #include <iostream> 
    #include <string>
    
    std::string a;
    
    int _tmain() 
    { 
    	std::cout << "Name:" << std::endl; 
    	std::cin >> a;
    
    	return 0;
    }
    


  • Hab das gerade nochmal ausprobiert, und mit std::... geht es nicht (warum auch immer).

    Aber so funktioniert es:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
    	string a;
    
    	cout<<"Name: ";
    
    	cin>>a;
    
    	cout<<"Dein Name lautet: "<<a;
    
    	return 0;
    
    }
    

    Also dann global das Namespace "std" einbinden, dann braucht man auch vor dem cout, cin, cerr, endl, usw. kein std:: mehr.



  • Kann mir nur sehr schwer vorstellen, dass die explizite Qualifikation nicht geht.
    Zeig mal den Code, der bei dir anscheinend nicht funktioniert.

    using kann man natürlich brauchen, aber nicht im Header!



  • Tja drakon, hast es wohl auch nicht gesehen, was?

    HighLigerBiMBam hat doch die Lösung schon geschrieben, und zwar fehlte vor string a; auch das std:: 😉



  • Cybertec schrieb:

    Tja drakon, hast es wohl auch nicht gesehen, was?

    HighLigerBiMBam hat doch die Lösung schon geschrieben, und zwar fehlte vor string a; auch das std:: 😉

    Das war mir zu Haarestreubend 😃 In diesem Fall lieber auf Nummer sicher gehen 😉



  • Kannsch verstehen. 😃

    Ok, also hier nochmal der Code ohne using namespace std:

    #include <iostream>
    #include <string>
    
    int main()
    {
        std::string a;
    
        std::cout<<"Name? ";
    
        std::cin>>a;
    
        std::cout<<"Dein Name ist: "<<a;
    
        return 0;
    }
    


  • Cybertec schrieb:

    Tja drakon, hast es wohl auch nicht gesehen, was?

    HighLigerBiMBam hat doch die Lösung schon geschrieben, und zwar fehlte vor string a; auch das std:: 😉

    Habe ich vermutet, dass etwas gefehlt hat, darum wollte ich, dass du das ganze nochmal postest/überlegst. - Meistens findet man dann den Fehler selbst, wenn man versucht ihn jemandem zu erklären. 😉



  • Wieso sollte ich nochmal überlegen? Ich habe den Thread nicht erstellt, allerdings ist mir das mit dem std:: vor string nicht gleich aufgefallen. 😉


Anmelden zum Antworten