Aktywne Wpisy

BezDobry +69
- będzie można montować zużyte wiatraki,
- oczywiście pod domami,
- no i w obszarach chronionych,
- a jak ktoś wymarzy sobie montaż na terenach rolnych to można je błyskawicznie zamienić w tereny inwestycyjne,
- no i Simensa się uratuje,
- ale przynajmniej odblokowali na ten cel kredyty z KPO.....
Ale Seba pa jaki śmieszny ten Hołownia i jak orze pisowców
#bekazlibka #bekazlewactwa #ekologia #wiatraki #takaprawda #bekazpodludzi
- oczywiście pod domami,
- no i w obszarach chronionych,
- a jak ktoś wymarzy sobie montaż na terenach rolnych to można je błyskawicznie zamienić w tereny inwestycyjne,
- no i Simensa się uratuje,
- ale przynajmniej odblokowali na ten cel kredyty z KPO.....
Ale Seba pa jaki śmieszny ten Hołownia i jak orze pisowców
#bekazlibka #bekazlewactwa #ekologia #wiatraki #takaprawda #bekazpodludzi

deiceberg +10
#przegryw
Szkoda, ze mam tylko jednego fiuta, bo brałbym ją na dwa baty
Szkoda, ze mam tylko jednego fiuta, bo brałbym ją na dwa baty





char znak[16];
// init
for (int i=0; i < 16; i++)
{
znak[i] = rand()%26 + 65;
if (znak[i] > 90 || znak[i] < 65) {znak[i] ='g'; } //chwilowe
}
cout << znak << endl;
strcat(znak,".txt");
ofstream outFile(znak);
cout << znak << endl;
`if (counter >= 10)
{
outFile.close();
for (int i = 0; i < 16; i++)
{
znak[i] = rand()%24 + 65;
if (znak[i] > 90 || znak[i] < 65) {znak[i] ='g'; } //chwilowe
}
// cout << znak << endl;
strcat(znak,".txt");
ofstream outFile(znak);
counter = 0;
}`
Mirki, co tu jest źle? Pierwszy kod wykonuje się na początku programu, drugi już później (kiedy counter będzie >= 10). Założenie jest takie, że ma mi tworzyć pliki txt o losowej nazwie złożonej z 16 dużych liter. Do plików "ręcznie" wpisuję cyferki, a gdy będzie ich odpowiednia ilość, chcę zamknąć plik txt, utworzyć następny i wpisywać do niego.
Otrzymuję 16 literowe ciągi dużych liter, potem 3 losowe znaki i .txt.
@japer:
Wyjaśnij jeszcze raz, na czym ten kod ma polegać.
Błędnie uƶywasz
strcat- wychodzisz poza zakres. W ogóle uƶywaj
std::arrayzamiast c-tablic. (albo jeszcze lepiej
std::stringchyba, ƶe faktycznie 16 znaków ma zawsze być)
Dodatkowo:
https://wykop-code.appspot.com/
Nie uƶywaj
rand(C++ ma ).
Nie uƶywaj wartości liczbowych do porównania z literami - C++ nie gwarantuje ASCII.
no właśnie może ty nam powiesz w czym masz problem ;).
tablica znak jest c-stringiem czyli powinna mieć 0 na końcu, czy na pewno tak jest? czy ma odpowiedni rozmiar żeby pomieścić 16 znaków + ".txt" + "\0"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
:P
@japer:
1. ma tworzyć plik tekstowy o nazwie [16 losowych dużych liter][.txt]
-tutaj możliwość wpisywania do pliku
2. ma zamykać poprzedni plik, tworzyć plik tekstowy o nazwie [16 losowych dużych liter][.txt]
-tutaj możliwość wpisywania do pliku
W skrócie - tworzy się plik, klikam guziczki, wszystkie się w nim zapisują. Gdy kliknę ich już 10,
Faktycznie, zapomniałem o powiększeniu zmiennej tak, aby pomieściła jeszcze 4 znaki więcej.
Teraz mam
strcat(znak,".txt");
znak[20] = '\0';
ofstream outFile(znak);
Tworzy ładnie pliki, w odpowiednim czasie, jednak tylko pierwszy z nich jest wypełniany.
znak[16] = '\0';
strcat(znak,".txt");
ofstream outFile(znak);
ale wnioskując po tym kodzie który podałeś to dalej zapisujesz do pierwszego pliku.
w drugiej części twojego kodu masz:
ofstream outFile(znak); w linii 31
nie jest to jednak ta sama zmienna co:
ofstream outFile(znak); w linii 13
drugi outFile jest tworzony w if'ie i taki ma zasięg (w tym czasie "przysłania" poprzedni outFIile), jeśli coś zapisujesz do outFile poza if'em to korzystasz ze zmiennej
ofstream outFile(znak);
w if'ie wstaw
outFile.open(znak);
lub
outFile = ofstream(znak);
ale wcześniej nie zapomnij jeszcze zamknąć poprzedniego pliku.
Ostatnia rzecz: pętla główna programu to while(true), ktora wykonuje się cały czas, aż do momentu:
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Tilde))
{cout<
Wciskając tyldę, program zatrzymuje się poprawnie, poprawnie zamyka ostatni plik, wszystko inne jest ok, oprócz tego, że potem wywala komunikat ""Aplikacja" przestała działać poprawnie".
próbowałem zamiast return(null) wrzucać break (po while(true) jest juz tylko return 0 i koniec aplikacji), to samo.
if(outFile.is_open()) outFile.close();