dev++ BCB6 - problem

0
  1. Mam pytanie dlaczego ten kod:
    KOD
    vector<String> w;
    ifstream plik ("config.txt");
    String text;
    while (plik >> text) {
    w.push_back(text); }

W Dev c++ działa dobrze a w BCB6 taki błąd wywala (4 linijka): not implemented in type 'ifstream' for arguments of type 'AnsiString'.

  1. tak samo ten kod w Dev c++ dobrze działa a w BCB źle:
    KOD
    String slowo = "kot";
    int j = 0;
    for(int i =0; i < w.size(); i++) {
    if(w[i] == slowo) {
    j = j + 1; }
    }

Treść błędu(3 linijka): Comparing signed and unsigned values

Co ja źle robie, jak to poprawić? Dodałem bibliotekę <vector> i <fstream>.

<font color="brown">//Popraw temat na sensowny! skoro piszesz na forum to oczywiste, że masz problem. Temat powinien odzwierciedlać treść pytania. Do tego czasu proszę innych aby nie odpowiadali na pytanie! Po zmianie możesz wywalić ten dopisek - M</span>

0

jesli chodzi o pytanie nr 1.
AnsiString jest wymyslem Borland a standardowa biblioteka ifstream nie ma opratora >> dla tego typu musisz zmienic typ danej do ktorego wpisujesz z pliku np na char* a potem dopiero do AnsiString

0

a co do drugiego pytania to pewnie nie jest blad tylko pewnie ostrzezenie :P ... a zeby to zniklo zmien typ "i" na unsigned int... bo pewnie w.size() ma taki typ

0

Skoro juz padla odpowiedz to ja dodam od siebie kilka slow. Myslalem, ze jednak poczeka sie na zmiane tematu. [!!!]

Odnosnie pytania 2.

W biblotece standardowej STL, rozmiary kontenerow sa zapisywane w zmiennej typu size_t, a jest to nic innego jak unsigned int. Jednak lepiej uzywac w programie size_t, bo od razu mozna wiedziecx, ze chodzi o rozmiar pojemnika, czy tablicy. ;P

1 użytkowników online, w tym zalogowanych: 0, gości: 1