Zapisuj wyniki do zmiennych tekstowych (jeśli są w postaci liczby, to użyj obiektu klasy std::stringstream oraz operatory << i >>) i przesyłaj je do pliku, za pomocą obiektu klasy std::fstream i operatora <<.
Zapisuje cyfry w zmiennej "int" wypisując je po kolei, aż uzyskam liczbę - 11 cyfrową.
Lecz nie wiem czy to dobry pomysł... bo w kolejnym projekcie będę chciał te liczby rozbić w pojedyncze jednostki, by móc nimi manipulować - wdrożyć różne wzory. np:
1468 wynik=1*wzór+4*wzór+6*wzór+8*wzór
1468
wynik=1*wzór+4*wzór+6*wzór+8*wzór
Myślę że zwykłe tablice mi w tym pomogą.
Ps. Szkoda, że na forum nie ma spojlerów. Na wszelki wypadek dodam swój kod.
#include <iostream> #include <cstdlib> #include <time.h> #include <fstream> using namespace std; int liczba, PESEL, x; int main() { fstream plik; srand(time(NULL)); cout<<"Ile nr. PESEL potrzebujesz?"; cin>>x; for (int i=0; i<x; i++) for (int I=0; I<=10; I++) { liczba = rand()% 9+1; cout<<liczba; if (I>=10) { cout<<endl; } } //plik.open("PESEL.txt", ios::out); // plik<<liczba; //plik.close(); return 0; }
Tak jak już pisałem, użyj zmiennej tekstowej, czyli std::string. Później generuj, po kolei, cyfry, a następnie konwertuj je na tekst (za pomocą std::stringstream). Potem dodawaj takie fragmenty tekstu do głównej zmiennej tekstowej, za pomocą operatora +=. Na koniec zostało ci przesłanie tego tekstu do pliku, za pomocą std::fstream.
Znalazłem metody konwertowania int>string i odwrotnie.
{ int liczba; stringstream ss; string str; ss << liczba; ss >> str; cout << str; }
Czyli zachodzi sytuacja:
1) Po wylosowaniu jednej cyfry w "liczba" zostaje przesłana do zmiennej (??) "ss". Natomiast "ss" przekazuje do "str" która jest zmienną string? Na końcu zostaje wypisana "str" w celu weryfikacji poprawności wykonanego polecenia.
2) Dlaczego przesyłamy z "ss" do "str"? (zdaje sobie sprawę, że istnieje powód. Nie, jeszcze nie szukałem tego powodu)
Bynajmniej gdy wykorzystuje powyższy kod, wyskakuje mi że "ss" nie ma deklaracji w zakresie(?). Zmienna "liczba" nie deklaruje?
Edit:
Podczas pisania tej odpowiedzi zdołałem napisać trzy różne rozwiązania... W każdym razie chyba się udało. Za pomocą zwykłego interatora jak i stringa. Tak dla pewności:
{ plik.open("PESEL.txt", ios::out | ios::app); liczba = rand()% 9+1; //cout<<liczba; stringstream ss; string str; ss << liczba; ss >> str; cout << str; plik<<liczba; if (I>=10) { cout<<endl; plik<<endl; } plik.close(); }
3) Program do testów został stworzony. Mam wypisane liczby w .txt. Pytanie jest tu różnica między int a string? Jak będę odczytywał w nowym programie plik .txt przecież nie będzie wiedział jakich zmiennych użyłem string int?
4)Jak numerować linie podczas dodawania kodu?
87,895 zapytań
136,484 odpowiedzi
304,291 komentarzy
58,280 pasjonatów
Motyw:
Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡
Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.