• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

W C++ Builderze 6 mam problem z funkcją getline()

0 głosów
1,421 wizyt
pytanie zadane 7 listopada 2015 w C i C++ przez BezNazwy Użytkownik (540 p.)
Chce zrobić takie coś

void __fastcall TForm::FormCreate(TObject *Sender)
{
        fstream plik;
        plik.open("Nazwa_Pliku.txt", ios::in);

        if(plik.good()==false)
        {
           Application->Terminate();
        }

        AnsiString linia;
        getline (plik, linia);

}

Ale wyskakuje mi taki error:

[C++ Error] Unit3.cpp(37): E2285 Could not find a match for 'getline<_CharT,_Traits,_Alloc>(fstream,AnsiString)'

Prosze pomóżcie!

1 odpowiedź

+3 głosów
odpowiedź 7 listopada 2015 przez Krawiec91 Pasjonat (19,600 p.)
wybrane 7 listopada 2015 przez BezNazwy
 
Najlepsza
Spróbuj użyć zamiast AnsiString zwykłego typu string.
komentarz 7 listopada 2015 przez BezNazwy Użytkownik (540 p.)
Teraz jak chce dać:

Przycisk->Caption=linia;

to wyskakuje taki error:

[C++ Error] Unit3.cpp(43): E2034 Cannot convert 'string' to 'AnsiString'

A jak próbuje tak:

AnsiString nazwa;

nazwa=linia;

to wyskakuje taki error:

[C++ Error] Unit3.cpp(41): E2285 Could not find a match for 'AnsiString::operator =(string)'
komentarz 7 listopada 2015 przez Krawiec91 Pasjonat (19,600 p.)

Do wczytania danych z pliku użyj typu string, a żeby tego użyć z komponentami Buildera, zamień na AnsiString, np.
 

AnsiString borland_text;
string zwykly_text="Zwykly string";
borland_text=zwykly_text.c_str();

Da się to też na inne sposoby zrobić, taki mi akurat w tej chwili do głowy przyszedł. Funkcja c_str() zamienia string na C-string (tablicę typu char), który może być przypisany do AnsiStringa.

komentarz 7 listopada 2015 przez BezNazwy Użytkownik (540 p.)
Dzięki już działa :}
komentarz 24 czerwca 2017 przez MsMaciek123 Pasjonat (24,760 p.)
Mam podobny problem.
Napisałem

 

string txt="";

fstream CA;
    CA.open("CAKomunikatorek.txt",ios::out | ios::in);
    getline(CA,txt);
    Form2->PoleChatowe->Lines=txt.c_str();
    CA.close();

 

Błąd:   [C++ Error] Unit1.cpp(43): E2034 Cannot convert 'const char *' to 'TStrings *'

Podobne pytania

0 głosów
1 odpowiedź 259 wizyt
pytanie zadane 13 grudnia 2015 w C i C++ przez dartek Początkujący (300 p.)
0 głosów
2 odpowiedzi 559 wizyt
pytanie zadane 22 czerwca 2018 w C i C++ przez Anon431 Nowicjusz (160 p.)

93,720 zapytań

142,635 odpowiedzi

323,264 komentarzy

63,267 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...