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

Zapis odwroty słów pobranych z pliku txt

Object Storage Arubacloud
0 głosów
244 wizyt
pytanie zadane 22 lutego 2019 w C i C++ przez patryk241 Użytkownik (700 p.)

W zadaniu mam wczytać pliki i wpisać je do nowego pliku ale w odwrotnej kolejności. I właśnie jak je wczytać/zapisać w innej kolejności? Próbowałem coś z przesunięciem kursora ale nie bardzo to wychodziło.

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

string linia;

int main()
{
	
	
fstream dane;

dane.open("4.txt", ios::in);
if(dane.good()==false)
{
	cout<< "Plik nie istnieje";
}
getline (dane,linia);
cout<<linia<<endl;

fstream plik;
plik.open("reversed.txt", ios::out);


plik<<linia<<endl;

plik.close();
dane.close();

return 0;
}

 

2 odpowiedzi

0 głosów
odpowiedź 22 lutego 2019 przez Bondrusiek Maniak (61,410 p.)
wybrane 22 lutego 2019 przez patryk241
 
Najlepsza

Witam,

musisz stworzyć algorytm który odwróci stringa bo w tym przykładzie tylko wczytujesz z jednego z pliku i zapisujesz tą samą zawartość do drugiego.

fstream plik;
plik.open("reversed.txt", ios::out);
 //Tu musisz odwrócić string
 
plik<<linia<<endl;
 
plik.close();

Przykładowy program


// A Simple C++ program to reverse a string 
#include <bits/stdc++.h> 
using namespace std; 
  
// Function to reverse a string 
void reverseStr(string& str) 
{ 
    int n = str.length(); 
  
    // Swap character starting from two 
    // corners 
    for (int i = 0; i < n / 2; i++) 
        swap(str[i], str[n - i - 1]); 
} 
  
// Driver program 
int main() 
{ 
    string str = "geeksforgeeks"; 
    reverseStr(str); 
    cout << str; 
    return 0; 
} 

Więcej info

https://www.geeksforgeeks.org/reverse-a-string-in-c-cpp-different-methods/

+1 głos
odpowiedź 23 lutego 2019 przez sp00ky Obywatel (1,760 p.)

Najlepsza opcja to użycie std::reverse

#include <algorithm>
#include <iostream>
#include <string>

int main()
{
    std::string test {"Hello world"};
    std::cout << "Oryginalny string: " << test << "\n";
    std::reverse(test.begin(), test.end());
    std::cout << "Odwrocony string: " << test << "\n";

    return 0;
}

Wynik działania programu

Oryginalny string: Hello
Odwrocony string: olleH

Łatwo i prosto bez pisania zbędnych funkcji, które i tak są już bibliotece standardowej.

Podobne pytania

+1 głos
1 odpowiedź 677 wizyt
0 głosów
1 odpowiedź 328 wizyt

92,678 zapytań

141,582 odpowiedzi

320,064 komentarzy

62,039 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

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!

...