Wczytanie danych z pliku do zmiennej

0

Cześć
W trakcie programu napotkałem problem którego nie mogę rozwiązać ani znaleźć rozwiązania
Opis problemu :
Mam plik w którym znajduję się wartość np 25 i chciałbym ją przypisać do zmiennej typu całkowitego i nie wiem jak to zrobić
Próbowałem coś takiego :

                fstream plik ;
                plik.open(login+".txt",ios::in);
                string wczytanaLinia ;
                int y = 0 ;
				while(getline(plik,wczytanaLinia))
				{
					if (wczytanaLinia == "------")
					{
						break;
					}
					else if (wczytanaLinia != "------" && wczytanaLinia != "cokolwiek")
					{
						champions aktualnaPostac;
						int tmp = static_cast<int>(wczytanaLinia[0]);
                                               aktualnaPostac.sila = tmp;
					}
				}
				file.close();

Wiem ze działa to tylko dla 0 indeksu ( czyli dla 25 tylko dla 2 ) ale wrzucam po to zeby opisac o co mniej wiecej mi chodzi

1

Ale co nie działa.

0

W tym programie działa wszystko
Ale przy wczytaniu np 25
do zmiennej trafia tylko 2
a chciałbym żeby jej wartość była = 25

0

wczytanaLinia[0]

0

Zamiast operatora nawiasów (tak dostaniesz tylko pierwszy znak) możesz użyć np subtringa i wyciąć dwa pierwsze znaki: http://www.cplusplus.com/reference/string/string/substr/

0

a jeśli będzie to wartość wieksza np 100 to substr zadziała od początku do końca ?
i potem będzie można przypisać to do inta ?

0

Jeśli w tej linii jest tylko jedna liczba to std::from_chars
Jeśli jest więcej liczb to std::istringstream

1

Strasznie nagmatwałeś swój kod.

int read_some(const std::string& filename)
{
     std::ifstream f{filename};
     return read_some(f);
}

int read_some(std::istream& in)
{
    std::string lineStr;
    while(getline(in, lineStr)) {
         std::istringstream line{lineStr};
         int tmp;
         // to przeskoczy wszystkie linie nie zawierające liczby na początku
         if (line >> tmp) return tmp; 
    }
    throw InvalidFileFormatException{};
}

Disclaimer: powyższy kod zapewne jest ułomny z punktu widzenia twojej aplikacji.
Jednak jako że nie podałeś specyfikacji co właściwie ma to robić, to dostarczanie czegoś lepszego jest utrudnione.

0

Problem rozwiązany
Wczytanie linie zapisalem w stringu a nastepnie za pomoca stoi przekonwertowałem

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