Jak wstawić zmienna w miejsce wskaźnika?

0

Cześć Panowie, pisze w c++ od niedawna i mam nie lada problem którego nie mogę rozwiązać.
Piszę w std::string i muszę wstawić pętlę do zapisu dotychczasowych efektów. Natomiast gdy wstawiam zmienną, np. k to program sugeruje mi "cannot appear in a constant-expression".

Co mi doradzicie ? :)

0

co mi doradzicie ? :)

Bez kodu? Nic.

Piszę w std::string i muszę wstawić pętlę do zapisu dotychczasowych efektów.

Po co pętla i gdzie to zapisujesz?

0
plik.open("nazwy.txt",ios::in);
if(plik.good()==false);
{
    cout<<"plik nie istnieje";
    exit(0);
}

string linia;
while( getline(plik,linia))
{
    int o=nr_linii;
    switch(nr_linii)
    {
        case o:uzytkownicy[(o-1)]=linia; break;

    }

    nr_linii++;
}
}
0
int o=nr_linii;
    switch(nr_linii)
    {
        case o:uzytkownicy[(o-1)]=linia; break;

    }

    nr_linii++;

Co tutaj chcesz osiągnąć?

Głownie chodzi o to case o:. Wartość reprezentowana przez o musi być constexpr.

0

chciałbym zrobić pętle gdzie o jest zmienną, i teraz moje pytanie, jest możliwość żeby zmienna o była również wskaźnikiem dla std::string użytkownicy żeby pokazywała którą linijkę kodu ma zapisywać ?
Z góry dzięki za pomoc :)

2

Ciężko mi jest wyobrazić sobie, co tam wymyśliłeś.
Napisz po co ci to? Wydaje mi się, że błądzisz po omacku.

Jeśli chcesz zapisać linię tekstu z nr_linii możesz użyć std::map,
albo do std::vector i operować na indeksach.

Edit:

#include <iostream>
#include <vector>
#include <fstream>
#include <string>

int main() {
   std::vector<std::string> lines;
   std::ifstream fin("test.txt");
   if (fin) {
      std::string line;
      while (std::getline(fin, line)) {
         lines.push_back(line);
      }

      for (std::size_t i = 0; i < lines.size(); ++i) {
         std::cout << "linia " << i + 1 << ": " << lines[i] << '\n';
      }
   }
   return 0;
}

Przetestuj i sprawdź czy spełnia twoje wymagania.

0

działa, wielkie dzięki

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