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

Wczytanie z pliku do obiektu.

VPS Starter Arubacloud
0 głosów
475 wizyt
pytanie zadane 2 maja 2015 w C i C++ przez Ins0mniaC Obywatel (1,400 p.)
Witam. Mam problem z programem. Mam obiekt Punkt_2D, czyli przepis na obiekt który losuje punkt x i y tak, że wygląda to tak x,y np 46,94 i zapisuję to w taki sposób do pliku tekstowego. Narazie działam na jednym tylko obiekcie, chciałbym zrobić wczytanie z tego pliku do drugiego obiektu, niestety nie mam pomysłu jak to zrobić. Bo o ile mogę to zrobić getline, ale to musiałbym mieć zapisane w sposób x, a w drugiej linii y, czyli tak:

x

y

A chcę mieć

x,y

i jak to wczytać do obiektu, ma ktoś pomysł?

2 odpowiedzi

+1 głos
odpowiedź 2 maja 2015 przez MoWerr Obywatel (1,940 p.)
wybrane 3 maja 2015 przez Ins0mniaC
 
Najlepsza

ja bym to zrobił w ten sposób:

 

#include <iostream>
#include <fstream>

using namespace std;

void main(){
	int x, y;
	char znak;

	ifstream plik;
	plik.open("punkt.dat");

	plik >> x >> znak >>  y;
	cout << x << "\t" << y << endl;
}

 

Ten kod wczytuje x i y oddzielone jakimś znakiem. Możesz też skorzystać z takiej opcji: 

#include <iostream>
#include <fstream>

using namespace std;

void main(){
	int x, y;

	ifstream plik;
	plik.open("punkt.dat");

	plik >> x;
	plik.ignore(1);
	plik >> y;
	cout << x << "\t" << y << endl;
}

Tylko tutaj przed ani po przecinku nie może być znaków spacji.

0 głosów
odpowiedź 2 maja 2015 przez krecik1334 Maniak (58,390 p.)
Wczytaj stringa, do przecinka zrzutuj ten fragment stringa na int (do np zmiennej x), po przecinku do np. zmiennej y i gotowe. Musisz tylko znać pozycję przecinka (możesz to zrobić pętlą wyszukując przecinek).
komentarz 2 maja 2015 przez Ins0mniaC Obywatel (1,400 p.)

A co gdy mam punkt w "3D"? Mógłbyś podpowiedzieć jakby mniej więcej to miało wyglądać?Narazie mam coś takiego:

string aktualny;
int przecinek1pozycja;
int przecinek2pozycja;
fstream plik3D;
plik3D.open(nazwa_3D,ios::in);
if(plik3D.good()==true)
{
                getline(plik3D,aktualny);
                for(int i=0;i<aktualny.lenght;i++)
                {
                            if(aktualny[i]=",")   przecinek1pozycja=aktualny[i];
                }
                getline(aktualny,przecinek1pozycja);
		Punkt_3D::x=atof(aktualny.c_str());
}

 

Podobne pytania

0 głosów
1 odpowiedź 503 wizyt
pytanie zadane 7 grudnia 2018 w C i C++ przez matiibal Użytkownik (620 p.)
0 głosów
1 odpowiedź 190 wizyt
pytanie zadane 7 listopada 2018 w C i C++ przez gorgonkowa Obywatel (1,810 p.)
0 głosów
1 odpowiedź 152 wizyt
pytanie zadane 27 lutego 2019 w C i C++ przez niezalogowany

92,455 zapytań

141,263 odpowiedzi

319,099 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!

...