| | |
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Autor | Správa |
---|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
Ahojte.
Včera som prvý krát skúšal c++. Chcem si spraviť program na bezpečné mazanie dát (/prečistenie disku od vymazaných dát zápisom sekvencie náhodných bitov niekoľko krát za sebou).
Problém je v tom, že neviem poriadne, ako nasimulovať tie náhodné bity.
Vytvoril som si premennú typu char a pridelil jej náhodné číslo medzi 0 a 255. Myslel som si, že to bude fungovať. Lenže som zistil, že keď zapíšem 4 takéto byty, tak súbor má veľkosť 12 bytov (nie vždy, závisí od toho, aké byty sa vytvoria) :O . Tým pádom neviem zistiť, koľko som už zapísal.
Mohol by mi niekto pomôcť so spôsobom, ako vytvoriť náhodný byte o veľkosti 1 byte?
Kód, ktorý doteraz mám (berte do úvahy, že som nikdy v C ani C++ nerobil)
Kód: #include <iostream> #include <cstdlib>
using namespace std;
int main() { int filesize,i,rndint; char cr; cin >> filesize; FILE * pFile; pFile = fopen ("myfile.txt","w"); if (pFile!=NULL){ for(i=0;i<filesize;i++){ srand((unsigned)time(0)); cr = random()%255; fputs((cr+""),pFile); } fclose(pFile); } }
Na prerobenie tam je toho ešte veľa, napríklad srand treba trošku inak vypočítavať, time nie je zrovna to pravé orechové. Tiež musím vypočítať voľné miesto na disku, teraz ručne zadávam veľkosť takéhoto súboru.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 30.04.08 Prihlásený: 15.05.15 Príspevky: 884 Témy: 3 |
Chyba je podla mna v tom, ze ty sice vygenerujes cislo, ktore v pamati zabera jeden bajt, ale ked sa zapise do suboru, dochadza ku konverzii na znaky a moze zaberat aj tie 3 bajty. Napr. vygenerujes cislo 123 a zapise sa do suboru, pricom su to 3 znaky a kazdy ma jeden bajt. Najlepsie by bolo pouzit formatovany vystup
fprintf(pFile, "%c", cr) - vtedy ti zapise znak, ktoreho hodnota je vygenerovane cislo v znakovej tabulke, napr. pre cislo 123 je to znak'{'
alebo das
cr = random()%10;, cim dosiahnes, ze hodnota cr bude len v rozsahu od 0 do 9, takze pri zapise do suboru budu mat tieto znaky len 1 bajt a zapisovat mozes pomocou fputs(), ako predtym.
Neskusal som to sice, ale myslim, ze by to malo fungovat...
_________________ Empty your memory, with a free()… like a pointer! If you cast a pointer to an integer, it becomes the integer, if you cast a pointer to a struct, it becomes the struct… The pointer can crash…, and can overflow… Be a pointer my friend… |
|
Registrovaný: 21.06.07 Prihlásený: 06.05.13 Príspevky: 421 Témy: 4 | Napísal sento: 07.12.2008 14:34 | |
|
namiesto fputs preba pouzit:
Kód: fputc(cr,pFile);
lebo ono to fungovalo tak, ze ak cr bolo 123, tak Ti to vypisovalo cely retazec, ktory zacinal na adrese 123;
fputs... vypisuje retazec!!! a nie znak
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
Ďakujem za rady, pomohli. Keď program dokončím, hodím sem kód, snáď sa niekomu zíde.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Bity ::: Bity ::: Bity v Assembler, C, C++, Pascal, Java | 8 | 533 | 24.04.2009 19:24 reDo | | bity v Operačné systémy Microsoft | 4 | 545 | 06.08.2008 18:22 asusko | | nahodne v Redakčné systémy | 7 | 778 | 20.08.2007 15:42 Flety | | Náhodné reštartovanie v Operačné systémy Microsoft | 0 | 273 | 15.04.2021 22:06 medove | | nahodne obrazky v JavaScript, VBScript, Ajax | 5 | 915 | 29.01.2009 20:43 dsljohn | | nahodne obrazky v PHP, ASP | 2 | 557 | 08.09.2008 7:25 stenley | | Náhodné zamrzanie v AMD čipové sady | 2 | 548 | 21.09.2016 19:12 scopers | | nahodne video v JavaScript, VBScript, Ajax | 7 | 666 | 04.03.2010 12:14 vputin | | Nahodne BSOD v Operačné systémy Microsoft | 4 | 455 | 10.06.2020 17:22 4040 | | náhodné BSOD v Operačné systémy Microsoft | 12 | 592 | 18.06.2013 22:32 walther | | Náhodné reštarty v PC skrinky a zdroje | 3 | 372 | 03.05.2016 14:04 Miso122 | | Nahodne vypinanie pc v AMD čipové sady | 2 | 601 | 11.07.2012 13:44 OmeGa | | nahodne vykreslovanie - pascal v Assembler, C, C++, Pascal, Java | 16 | 1660 | 03.06.2007 22:38 juho | | Nahodne rozhadzana hudba v Ostatné programy | 0 | 391 | 25.03.2016 20:46 mareks4 | | Nahodne restartovanie systemu. v Intel - Integrated Electronics | 18 | 887 | 03.09.2011 1:33 Millfox | | Náhodne zobrazovanie scriptu v PHP, ASP | 1 | 727 | 22.12.2006 18:05 Alyx_Vance |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|