• 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++?

VPS Starter Arubacloud
0 głosów
608 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 (194,920 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 (194,920 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ź 271 wizyt
0 głosów
1 odpowiedź 366 wizyt
pytanie zadane 8 maja 2019 w C i C++ przez Franek313 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 237 wizyt
pytanie zadane 10 lutego 2016 w C i C++ przez BezNazwy Użytkownik (540 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...