anfängerfrage



  • alsoo
    ich will nen string in nen *char packen also so:
    cout<<"Bitte Text angeben:"<<endl;
    cin>>text;

    wie kriege ich denn nu den *char text genauso lang wie ich ihr brauche?



  • const char *text1="Text";
    char text2[]="Text";
    

    bitte benutz doch vernünftige Topics, denkst du so was wie "anfängerfrage" ist da hilfreich?
    wmfrs



  • kingruedi schrieb:

    const char *text1="Text";
    char text2[]="Text";
    

    bitte benutz doch vernünftige Topics, denkst du so was wie "anfängerfrage" ist da hilfreich?
    <a target='_blank'href='http://tinyurl.com/ysokg'>Wie man Fragen richtig stellt</a>

    äh ich glaub du hast mich flash verstanden...
    ich habe nen char:

    char *text = new char[256];
    cin>>text;
    cout<<text<<endl;

    jetzt werden 256 zeichen ausgegeben egal wieviele der user eingibt!
    das möchte ich verhindern...ich will nur das ausgeben was auch wirklich eingegeben wurde...



  • Und für das einlesen nimmst du Strings.
    Von den kommst du auch an das char* Array ran, wenn du diesen Nullterminierten String noch brauchst.

    string my;
    cin >> my;
    printf("%s",my.c_str());
    


  • string sKey;
    cin>>sKey;

    ----

    \main.cpp(18) : error C2679: Binaerer Operator '>>' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class std::basic_string<char,struct std::char_traits<char>,class std::al
    locator<char> >' akzeptiert (oder keine geeignete Konvertierung moeglich)



  • #include <string> oder #include <iostream> vergessen? Vielleicht alte und neue Header gemixt?

    So liest du aber nur bis zu einem Space oder Newline std::getline liest eine komplette Zeile



  • ups hatte noch iostream.h...wo findich infos zu getline...hzab vergessen wie das geht ^^
    edit: habs thx



  • #include <iostream>
    #include <string>
    
    //...
    
    std::string s;
    std::getline(std::cin, s);
    

Log in to reply