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

wypisanie w konsoli danych z pliku txt

Object Storage Arubacloud
0 głosów
659 wizyt
pytanie zadane 24 listopada 2019 w C i C++ przez Hardwell Dyskutant (8,980 p.)
Witam, jak w temacie, chciał bym, aby w konsoli wyświetliła się lista którą mam w pliku .txt, ale chciał bym, żeby każda linijka była poprzedzona indexem

(1. -------
2. --------)

itd, jak to osiągnąć?

2 odpowiedzi

+1 głos
odpowiedź 25 listopada 2019 przez Inn Gaduła (4,300 p.)
wybrane 25 listopada 2019 przez Hardwell
 
Najlepsza

Sam ciągle się uczę także też miałem z tym trochę zabawy ale wyszło coś takiego i z tego co testowałem działa tak jak chciałeś, w razie błędów na pewno koledzy z forum mnie poprawią.

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

using namespace std;

void wypisz_plik(string sciezka)
{
	fstream plik;
	plik.open("plik.txt", ios::in | ios::out);

	int index = 1;
	string tekst;
	
	if (plik.good())
	{
		while (getline(plik, tekst))
		{
			cout << index++ << ". " << tekst << endl;
		}
	}

	plik.close();
}

void usun_linie(string sciezka, int linia)
{
	fstream plik;
	plik.open("plik.txt", ios::in | ios::out | ios::app );
	
	vector <string> temp;
	string tekst;
	int index = 1;

	if (plik.good())
	{
		while (getline(plik, tekst))
		{
			if (index != linia)
			{
				temp.push_back(tekst);
			}

			index++;
		}
	}

	plik.close();
	plik.open("plik.txt", ios::in | ios::out | ios::trunc);

	for (int i = 0; i < temp.size(); i++)
	{
		plik << temp.at(i) << endl;
	}

	plik.close();
}

int main()
{
	wypisz_plik("plik.txt");

	cout << "\nWybierz linie ktora chcesz usunac : ";
	int wybor;
	cin >> wybor;
	cout << endl;

	usun_linie("plik.txt",wybor);
	wypisz_plik("plik.txt");

	return 0;
}

Chodzi o usuwanie danej linii z tekstu.

komentarz 25 listopada 2019 przez Hardwell Dyskutant (8,980 p.)
Dzięki maestro, bangla aż miło
0 głosów
odpowiedź 24 listopada 2019 przez j23 Mędrzec (194,920 p.)
int index = 1;
...

std::cout << index++ << ". " << dana << '\n';

Użyj strumienia std::ifstream, być może std::getline i pętli while.

komentarz 24 listopada 2019 przez Hardwell Dyskutant (8,980 p.)
@j23 działa, dzięki

jeszcze jedno pytanie, w jaki sposób usunąć daną linijkę z pliku?
komentarz 24 listopada 2019 przez j23 Mędrzec (194,920 p.)
Musisz przepisać plik pomijając usuwaną linię.
komentarz 24 listopada 2019 przez Hardwell Dyskutant (8,980 p.)
tak też myślałem, tylko w jaki sposób zapisywać z pomijaniem danej linijki?
komentarz 24 listopada 2019 przez j23 Mędrzec (194,920 p.)

W pętli. Czytasz linię (std::getline), sprawdzasz, czy linia jest do usunięcia, jeśli jest, czytasz następną linię, a jeśli nie - zapisujesz ją do strumienia wyjściowego (std::ofstream). Całość powtarzasz, aż przeczytasz wszystkie linie.

komentarz 24 listopada 2019 przez Hardwell Dyskutant (8,980 p.)
nie wiem jak to napisać

Podobne pytania

+1 głos
3 odpowiedzi 394 wizyt
pytanie zadane 17 września 2020 w C i C++ przez regge03 Nowicjusz (130 p.)
0 głosów
0 odpowiedzi 325 wizyt
pytanie zadane 23 kwietnia 2020 w C i C++ przez razorv17 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 844 wizyt
pytanie zadane 19 czerwca 2020 w C i C++ przez tomek.99 Początkujący (370 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...