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

C++ operacje na plikach tekstowych

Object Storage Arubacloud
0 głosów
2,047 wizyt
pytanie zadane 14 stycznia 2017 w C i C++ przez Gapsiu Nowicjusz (140 p.)
Witam

Potrzebuję pomocy odnośnie działań na plikach tekstowych.

Moim zadaniem jest wypisanie do pliku 15 kolejnych liczb zaczynając od 0. Następnie muszę pobrać z tego pliku liczby mniejsze od 13 i wykonać na nich działania matematyczne. Jak pobrać każdą liczbę z osobna do tabeli, aby móc wykonywać na nich dodawanie, odejmowanie itd? Czy trzeba przy pobieraniu liczb wykonywać konwersję ze string do int?

3 odpowiedzi

0 głosów
odpowiedź 14 stycznia 2017 przez niezalogowany
edycja 14 stycznia 2017
komentarz 14 stycznia 2017 przez niezalogowany

Jeżeli pod 2) kryje się pytanie "czy trzeba konwertować je z string na int", to poprawna odpowiedź brzmi: nie

komentarz 14 stycznia 2017 przez CzikaCarry Szeryf (75,340 p.)
shead, ale przecież autor tematu chce wykonywać na nich działania matematyczne. W sumie nie musi koniecznie na inta, może to być float, double, etc. Chyba, że zrobił sobie funkcje / metody, które mogą pracować na stringach (na tej podstawie stworzyłem klasę BigInt mogącą przechowywać baaaaaaardzo duże liczby ).
komentarz 14 stycznia 2017 przez niezalogowany

@CzikaCarry można wczytać dane z pliku nie tylko do stringa, ale i do int'a. Jeżeli czegoś MZ nie pokazał, to nie oznacza że się nie da...

Przykład:

/* Przykładowy plik (ex.txt)
23
*/

...

std::fstream file("ex.txt", std::ios::in);
if(!file.is_open())
  return 1;

int number;
file >> number;

number += 7;

std::cout << number << "\n";

/* OUTPUT:
30
*/

 

komentarz 14 stycznia 2017 przez niezalogowany
Tak w sumie to pewnie pokazał, ale zapamiętało się przykład z quizem i getlinem. Dzięki za uwagę - teraz na pewno zapamiętam to do końca życia :)
komentarz 14 stycznia 2017 przez Gapsiu Nowicjusz (140 p.)
	Wypisuję liczby do pliku. Jaką komendą wczytać każdą liczbę po kolei do tablicy T?


fstream plik;
	plik.open("liczby.txt", ios::out);
	for(int i=0; i<16; i++)
	plik<<i<<" ";
	plik.close();

 

komentarz 14 stycznia 2017 przez niezalogowany

Analogicznie jak zapisujesz do pliku, poczytaj linki które dałem ci w mojej odpowiedzi.

Tutaj działający przykład o tym co pisałem z @Czika

$ cat test.cc
#include <fstream>
#include <cstdio>

int main()
{
  std::fstream file("ex.txt", std::ios::in);
  if(!file.is_open())
    return 1;

  int number = 0;
  file >> number;
  number += 3;

  printf("%d\n", number);
  return 0;
}
$ echo 8 > ex.txt
$ ./test
11

 

komentarz 14 stycznia 2017 przez Gapsiu Nowicjusz (140 p.)
Jeszcze jakbyś mi wytłumaczył jak pobrać każdą liczbę(w moim przypadku od 0 do 15) z pliku i wrzucić ją do tablicy int T[15]. Bo ten przykład, który podałeś, wczytuje tylko pierwszą liczbę z pliku :)
0 głosów
0 głosów
odpowiedź 14 stycznia 2017 przez 10kw10 Pasjonat (22,880 p.)

Ja bym zrobil cos takiego

while(getline(linia,plik))
    {
        for(int i=0;i<linia.length();i++)
        {
            liczba+=linia[i];
            if(linia[i]==' ' || linia[i]==linia[linia.length()-1])
            {
                szukana=atoi(liczba.c_str());
                if(szukana<13) // zapis do tablicy
                liczba="";
            }
        }
    }

Tak trzeba przekonwertowac, jesli chcesz potem wykonywac dzialania na nich.

 

Podobne pytania

0 głosów
1 odpowiedź 195 wizyt
pytanie zadane 25 grudnia 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
0 głosów
2 odpowiedzi 223 wizyt
0 głosów
1 odpowiedź 187 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...