AnsiString einlesen



  • Hi,

    habe ein kleines Programm erstellt und das Problem das ich einen AnsiString über Cin einlesen will. Leider verursacht dies bei mir, bei der Eingabe selber in der DOS-Box, einen Fehler, nähmlich, dass ich Enter drücke (normalerweise wird ja dann weiter der Code ausgeführt) und der weiter einließt und ich nicht die Eingabe des Cin beenden kann.

    Hier ein Codeschnipsel:

    AnsiString name, vorname;
      for (int i=0; i < anzahl; i++)
      {
        cout << "\n\nBitte Daten fuer den " <<(i+1) << ".ten Schueler eingeben.\n";
        cout << "Name: "; cin >> name;
        cout << "Vorname: "; cin >> vorname;
        cout << "Note in PRG: "; cin >> note_prg;
        cout << "Note in Mathe: "; cin >> note_mathe;
        cout << "Fehlstunden bisher: "; cin >> fehlstunden;
        schueler[i].setAll(name, vorname, note_prg, note_mathe, fehlstunden);
      }
    


  • cin.get()?



  • Wo ist der Unterschied, wie wende ich das an?



  • #pragma hdrstop
    #include <iostream.h>
    #include <conio.h>
    #include <vcl.h>
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
            AnsiString test;
            cin >> test;
            cout << test;
            return 0;
    }
    

    Hier, wieso geht das nicht?

    Faldsche INcludes?

    Auch wenn ich cin.get() >> test; schreibe geht es nicht



  • AnsiString ???
    Was ist das ?? Die Standards (C/C++) kennen sowas zumindest nicht.



  • Was für eine Entwicklungsumgebung verwendest du denn?
    Bei mir schreit der Compiler schon wegen der <vcl.h>.
    Mach es doch einfach so:

    #include <iostream.h> 
    
    int main(int argc, char* argv[])
    {
        char test[255];
        cin >> test;
        cout << test;
        return 0;
    }
    


  • AnsiString gehört wie die VCL zum BCB. Verwende statt AnsiString einfach std::string und getline().



  • Hallo,

    Welchen Borland Compiler verwendest du denn.
    Bei meinem BCB5 würde folgendes gehen.

    #pragma hdrstop
    #include <iostream>  //kein .h
    #include <vcl.h>
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
            AnsiString test;
            std::cin >> test;
            std::cout << test;
            return 0;
    }
    

    In der Hilfe zu AnsiString steht dazu auch etwas. Alternativ dazu ist die Verwendung von std::string natürlich auch möglich.


Anmelden zum Antworten