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

Jak importować dane z pliku.txt W Builderze C++?

0 głosów
1,341 wizyt
pytanie zadane 24 stycznia 2020 w C i C++ przez Bfili Nowicjusz (120 p.)

Cześć!

W skrócie próbuję zrobić program w Builderze C++ i potrzebowałbym, żeby program zczytywał w pliku txt wartość liczbową, która byłaby potem do wykorzystania. Np. Użytkownik wpisuje liczbę 10. Do pliku.txt eksportowana jest liczba 10. Użytkownik wyłącza program, włącza go ponownie i znowu podaje wartość, tym razem 14. W pliku.ttx zatem powinna być zatem wartość 24. Sam schemat zrobienia czegoś takiego z C++ znam w postaci:

ifstream plik("NazwaPliku.txt");
for (int i=0; i<10; i++)
{
getline(plik,tablica[i]); // tablica została zdefiniowana wcześniej
}

Tylko w Builderze nie działa mi getline(), wyskakuje mi error "No matching function to call 'getline'". Niestety nie za bardzo potrafiłem znaleźć samemu rozwiązanie takiego problemu, na tyle proste, żebym je zrozumiał (programuję tak naprawdę od paru miesięcy, ponieważ mam zabójcze tempo na studiach i musiałem trochę nadrobić).

Z góry dziękuję za wszelkie odpowiedzi :)

2 odpowiedzi

0 głosów
odpowiedź 24 stycznia 2020 przez Inn Gaduła (4,300 p.)

Funkcja getline() odczytuje cały wiersz jako string, musisz zastosować konwersje typu.

komentarz 24 stycznia 2020 przez Bfili Nowicjusz (120 p.)
Chodzi właśnie o to, że Builder C++ nie lubi funkcji getline(), konwersja wydaje mi się, że nic nie da.
komentarz 24 stycznia 2020 przez Inn Gaduła (4,300 p.)
Nie możesz podać funkcji tablicy intów, spróbuj getline(plik, ( jakiś string ) )
komentarz 24 stycznia 2020 przez Inn Gaduła (4,300 p.)
for (int i = 0; i < 10; i++)
   {
        string liczba;
        getline(plik, liczba);
        tablica[i] = stoi(liczba);
    }

 

komentarz 24 stycznia 2020 przez Bfili Nowicjusz (120 p.)

Kod wygląda tak:

fstream plik;
	plik.open("kilometry.txt", ios::in|ios::out);
	int tablica[10];
	for(int i = 0;i<10;i++)
	{
	  String liczba;
	  getline(plik, liczba);
	  tablica[i] = stoi(liczba);
	}

getline jest podkreślony i nadal jest błąd "No matching function to call 'getline'", natomiast stoi jest podkreślony i ma błąd "use of undeclared identifier"

komentarz 24 stycznia 2020 przez Inn Gaduła (4,300 p.)
To co wysłałeś po zmianie 6 linii ( string z małej litery ) w Visual Studio 2019 się kompiluje.
komentarz 24 stycznia 2020 przez Bfili Nowicjusz (120 p.)
W Builderze string niestety musi być z dużej i w builderze się nie kompiluje. Co do zmiany środowiska to już nie za bardzo mam czas, bo szczerze mówiąc na jutro bym musiał mieć ten program działający, dlatego szukam rozwiązania dla Buildera.
komentarz 24 stycznia 2020 przez Inn Gaduła (4,300 p.)
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main() 
{
    ifstream plik("NazwaPliku.txt");

    char znak;
    while (plik.get(znak)) cout << znak;

    plik.close();            

    return 0;
}

W ten sposób możesz odczytać zawartość pliku przez wyświetlanie każdego znaku osobno. może to Ci pomoże chociaż zamknąć projekt.

0 głosów
odpowiedź 24 stycznia 2020 przez j23 Mędrzec (195,220 p.)
std::vector<int> values;

std::ifstream file("NazwaPliku.txt");

int v;

while (file >> v) {
    values.push_back(v);
}

 

komentarz 24 stycznia 2020 przez Bfili Nowicjusz (120 p.)
No dobrze, ale w sumie jak to działa? Bo teraz nie wiem jak mam wykorzystać zmienną wyciągniętą z pliku i tak naprawdę nie wiem, którą zmienną jest ta, o której mówiłem, że chcę do niej dodawać.
komentarz 24 stycznia 2020 przez j23 Mędrzec (195,220 p.)

Kod czyta wszystkie liczby z pliku do wektora values (założyłem, że liczby są typu int). Więc jak chcesz coś z tymi liczbami zrobić, bierz je stamtąd (dostęp jest taki sam jak w zwykłej tablicy).

Podobne pytania

0 głosów
1 odpowiedź 464 wizyt
0 głosów
1 odpowiedź 532 wizyt
pytanie zadane 8 maja 2019 w C i C++ przez Franek313 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 702 wizyt
pytanie zadane 10 lutego 2016 w C i C++ przez BezNazwy Użytkownik (540 p.)

93,733 zapytań

142,669 odpowiedzi

323,287 komentarzy

63,295 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.

...