abonnement Unibet Coolblue Bitvavo
pi_146380588
quote:
0s.gif Op donderdag 6 november 2014 20:17 schreef t4rt4rus het volgende:

[..]

Dan schrijf je 170 weg... Het getal niet "170"
Bij het inlezen van test.bin kan ik rekening houden dat het decimaal is opgeslagen. 170 kan ik weer omzetten naar binair.
pi_146380607
quote:
0s.gif Op donderdag 6 november 2014 20:28 schreef FastFox91 het volgende:

[..]

Bij het inlezen van test.bin kan ik rekening houden dat het decimaal is opgeslagen. 170 kan ik weer omzetten naar binair.
Het wordt niet decimaal opgeslagen het wordt binair opgeslagen.
pi_146380956
quote:
0s.gif Op donderdag 6 november 2014 20:28 schreef t4rt4rus het volgende:

[..]

Het wordt niet decimaal opgeslagen het wordt binair opgeslagen.
1
2
3
4
5
std::ofstream file("test.txt");
file.write("170", 3); // 3 karakters en 3 bytes

std::ofstream file2("test.bin", std::ios::binary);
file2.write("10101010", 8); // 8 bits, maar wordt opgeslagen als 8 karakters en 8 bytes. 
test.txt is dan toch niet binair opgeslagen?
pi_146387307
quote:
0s.gif Op donderdag 6 november 2014 20:36 schreef FastFox91 het volgende:

[..]
[ code verwijderd ]

test.txt is dan toch niet binair opgeslagen?
Je moet je even inlezen in basis C++.
Een string is een byte array.

"10101010" is dan ook gewoon een array met 8 karakters(en null teriminated).
Dat is 8 byte en niet 8 bit.

"170" is een string met 3 karakters '1', '7' en '0'.
pi_146392395
quote:
0s.gif Op donderdag 6 november 2014 23:05 schreef t4rt4rus het volgende:

[..]

Je moet je even inlezen in basis C++.
Een string is een byte array.

"10101010" is dan ook gewoon een array met 8 karakters(en null teriminated).
Dat is 8 byte en niet 8 bit.

Het is uiteindelijk gelukt om een 8bit binary string om te zetten naar een char en die weg te schrijven naar een bestand zodat die 1 byte blijft. Bedankt voor je reacties t4rt4rus.
"170" is een string met 3 karakters '1', '7' en '0'.
Wat je zegt, weet ik.
Ik vulde alleen "10101010" in omdat de write function als eerste parameter een string verwacht. Mijn vraag is of het mogelijk is om 8 bits op te slaan in een bestand ter grootte van 1 byte?

[ Bericht 9% gewijzigd door FastFox91 op 07-11-2014 08:58:51 ]
pi_146392643
Mijn God, je kan toch wel een binaire string naar een byte omzetten en vice versa?
  vrijdag 7 november 2014 @ 09:14:30 #107
12221 Tijn
Powered by MS Paint
pi_146392880
quote:
0s.gif Op vrijdag 7 november 2014 08:40 schreef FastFox91 het volgende:

[..]

Wat je zegt, weet ik.
Ik vulde alleen "10101010" in omdat de write function als eerste parameter een string verwacht.
Als je 1 byte wilt wegschrijven is het niet handig als je er 8 bytes instopt.
pi_146393286
quote:
0s.gif Op vrijdag 7 november 2014 08:40 schreef FastFox91 het volgende:

[..]

Wat je zegt, weet ik.
Ik vulde alleen "10101010" in omdat de write function als eerste parameter een string verwacht. Mijn vraag is of het mogelijk is om 8 bits op te slaan in een bestand ter grootte van 1 byte?
Welke 8 bits wil je opslaan?
More oneness, less categories
Open hearts, no strategies
Decisions based upon faith and not fear
People who live right now and right here
pi_146393423
quote:
0s.gif Op vrijdag 7 november 2014 09:00 schreef thabit het volgende:
Mijn God, je kan toch wel een binaire string naar een byte omzetten en vice versa?
Net niet, nu wel. Het is gelukt.
quote:
2s.gif Op vrijdag 7 november 2014 09:14 schreef Tijn het volgende:

[..]

Als je 1 byte wilt wegschrijven is het niet handig als je er 8 bytes instopt.
Ik had aangenomen dat in de functie write de karakters als binary werden geïnterpreteerd.
quote:
5s.gif Op vrijdag 7 november 2014 09:33 schreef trancethrust het volgende:

[..]

Welke 8 bits wil je opslaan?
1, 0, 1, 0, 1, 0, 1 en 0.

Maar het is gelukt. Bedankt voor de reacties.
  vrijdag 7 november 2014 @ 09:40:26 #110
226981 Gehenna
Volksmenner
pi_146393427
Wellicht kan het nog mooier of compacter, maar hiermee kun je een binary string omzetten naar een getal

1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <stdlib.h>

int main(void) {
    char * ptr;
    long parsed = strtol("11110111", & ptr, 2);
    printf("%lX\n", parsed);
    return EXIT_SUCCESS;
}
Robert Moog died for our synths
pi_146393622
quote:
0s.gif Op vrijdag 7 november 2014 09:40 schreef Gehenna het volgende:
Wellicht kan het nog mooier of compacter, maar hiermee kun je een binary string omzetten naar een getal
[ code verwijderd ]

1
2
3
bool x[] = {0, 1, 1, 1, 0, 0, 1, 0};
int y = x[0] << 7 | x[1] << 6 | x[2] << 5 | x[3] << 4 | x[4] << 3 | x[5] << 2 | x[6] << 1 | x[7];
char z = (char) y;
Zo had ik het uiteindelijk gedaan, maar bedankt voor je toevoeging.
pi_146393801
Je kan ook direct zetten:
1char z = 64+32+16+2
More oneness, less categories
Open hearts, no strategies
Decisions based upon faith and not fear
People who live right now and right here
pi_146394293
Dan kan ik net zo goed direct char z = 114 doen. :+ Ik heb die int y = .. wel nodig want de binary string verandert steeds.
pi_146394888
quote:
0s.gif Op vrijdag 7 november 2014 10:21 schreef FastFox91 het volgende:
Dan kan ik net zo goed direct char z = 114 doen. :+ Ik heb die int y = .. wel nodig want de binary string verandert steeds.
Char is ook een integer, dus je hebt geen int nodig.

Gebruik gewoon een functie die een string omzet naar integer.
pi_146394946
quote:
0s.gif Op vrijdag 7 november 2014 10:21 schreef FastFox91 het volgende:
Dan kan ik net zo goed direct char z = 114 doen. :+ Ik heb die int y = .. wel nodig want de binary string verandert steeds.
Dat eerste bedoel ik (char z = 0b01110010; kan overigens ook), dat laatste bleek niet uit je code. In dat geval kun je line 2 beter in een loop gooien voor leesbaarheid. Je loopt ook in de knoei als x[0]=true omdat je signed ints gebruikt (vanwege one's complement).

Edit: of nou ja, afhankelijk van wat je eigenlijk wilt met die bits...
More oneness, less categories
Open hearts, no strategies
Decisions based upon faith and not fear
People who live right now and right here
pi_146414470
Dit vind ik mooier:
1
2
bitset<10> somebits(string("01011"));
string somestring = somebits.to_string();
http://www.cplusplus.com/reference/bitset/bitset/
  vrijdag 14 november 2014 @ 00:59:37 #117
189216 netolk
maar dan andersom
pi_146635070
Hey Fok!ers.

Ik heb wat problemen met vectoren die pointers hebben...

1
2
3
4
5
6
7
8
9
std::vector<foo*> test;

test.push_back(new foo);

for(int i = 0; i < test.size(); i++)
   delete test[i];
test.clear();

test.push_back(new foo); // hier crashed het programma

Het idee is dat foo een virual class is en er dus derived classes aan de vector worden toegevoegd.
Het probleem is alleen dat wanneer ik de vector dus geleegd heb (met clear() ) dan crashed het programma als ik er weer wat aan toe probeer te voegen.

Kan iemand mij vertellen waarom dit gebeurt en hoe ik dit kan voorkomen? Internet maakt mij namelijk niet veel wijzer
Beware of the Raping Zebra's
pi_146636381
Uhm mm ik heb hier lang niet zo veel verstand van maar heeft het mss iets te maken dat je aangeeft dat er pointers naar foo inkomen en je er een class foo instopt? Of zie ik dat verkeerd
pi_146637042
@netolk Met een normale / "niet virtual class" werkt het iig prima.

@Holy_Goat new foo geeft een pointer terug.
pi_146637339
quote:
0s.gif Op vrijdag 14 november 2014 00:59 schreef netolk het volgende:
Hey Fok!ers.

Ik heb wat problemen met vectoren die pointers hebben...
[ code verwijderd ]

Het idee is dat foo een virual class is en er dus derived classes aan de vector worden toegevoegd.
Het probleem is alleen dat wanneer ik de vector dus geleegd heb (met clear() ) dan crashed het programma als ik er weer wat aan toe probeer te voegen.

Kan iemand mij vertellen waarom dit gebeurt en hoe ik dit kan voorkomen? Internet maakt mij namelijk niet veel wijzer
Dit is te summier. Geef eens een compileerbaar programma (dus inclusief main) dat deze fout genereert. Daar kunnen we wat meer mee.
pi_146637623
quote:
0s.gif Op vrijdag 14 november 2014 00:59 schreef netolk het volgende:
Hey Fok!ers.

Ik heb wat problemen met vectoren die pointers hebben...
[ code verwijderd ]

Het idee is dat foo een virual class is en er dus derived classes aan de vector worden toegevoegd.
Het probleem is alleen dat wanneer ik de vector dus geleegd heb (met clear() ) dan crashed het programma als ik er weer wat aan toe probeer te voegen.

Kan iemand mij vertellen waarom dit gebeurt en hoe ik dit kan voorkomen? Internet maakt mij namelijk niet veel wijzer
Wat voor error krijg je?
Al een debugger gebruikt? Valgrind?
  vrijdag 14 november 2014 @ 10:52:55 #122
189216 netolk
maar dan andersom
pi_146639592
Ik kreeg een crash met de melding program requested OS to quit program in unusual way oid

maar ik heb een poging gedaan om een voorbeeld code te schrijven en daar werkt het gewoon.

Mijn code opnieuw gecompileerd en nu werkt het daar ook. Blijkbaar heeft m'n compiler kuren en recompiled ie niet perse alle files...

Anyway bedankt voor de reacties. Vond het al raar dat het niet zou werken maar het hoort dus ook gewoon te werken :)
Beware of the Raping Zebra's
  zaterdag 25 juli 2015 @ 20:14:52 #123
189216 netolk
maar dan andersom
pi_154632001
Beste Fok!ers,
Ik kom niet helemaal uit ShellExecute, kan iemand mij helpen?

Zo werkt de code wel:
1ShellExecute(NULL, NULL,"bestand.odt",NULL,"map",SW_SHOWNORMAL);    

Maar ik heb hem liever in dit formaat zodat ik niet telkens de map eraf moet parsen en in een andere parameter mee hoef te geven.
1ShellExecute(NULL, NULL,"map/bestand.odt",NULL,NULL,SW_SHOWNORMAL);    
Alleen deze manier werkt dus niet, doe ik iets fout met relatieve path namen? of werkt ShellExecute echt alleen op de eerste manier?
Beware of the Raping Zebra's
pi_154639404
quote:
0s.gif Op zaterdag 25 juli 2015 20:14 schreef netolk het volgende:
Beste Fok!ers,
Ik kom niet helemaal uit ShellExecute, kan iemand mij helpen?

Zo werkt de code wel:
[ code verwijderd ]

Maar ik heb hem liever in dit formaat zodat ik niet telkens de map eraf moet parsen en in een andere parameter mee hoef te geven.
[ code verwijderd ]

Alleen deze manier werkt dus niet, doe ik iets fout met relatieve path namen? of werkt ShellExecute echt alleen op de eerste manier?
Heeft niks met C++ te maken maar hier is je antwoord https://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx

Je man dus een relatief pad invoeren.
Moet je working directory natuurlijk wel goed zijn.
  zondag 26 juli 2015 @ 11:25:48 #125
189216 netolk
maar dan andersom
pi_154641498
quote:
1s.gif Op zondag 26 juli 2015 03:47 schreef t4rt4rus het volgende:

[..]

Heeft niks met C++ te maken maar hier is je antwoord https://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx

Je man dus een relatief pad invoeren.
Moet je working directory natuurlijk wel goed zijn.
Daar had ik dus naar gekeken. maar dat werkt dus niet. (tenzij m'n working directory niet standaard de locatie van de exe is)
Beware of the Raping Zebra's
pi_154643602
quote:
0s.gif Op zondag 26 juli 2015 11:25 schreef netolk het volgende:

[..]

Daar had ik dus naar gekeken. maar dat werkt dus niet. (tenzij m'n working directory niet standaard de locatie van de exe is)
https://msdn.microsoft.com/en-us/library/windows/desktop/aa364934(v=vs.85).aspx

Lijkt mij eigenlijk ook... Hoewel misschien is het wel C:/Users/[username]/
  zondag 26 juli 2015 @ 16:23:10 #127
189216 netolk
maar dan andersom
pi_154648859
quote:
1s.gif Op zondag 26 juli 2015 13:29 schreef t4rt4rus het volgende:

[..]

https://msdn.microsoft.com/en-us/library/windows/desktop/aa364934(v=vs.85).aspx

Lijkt mij eigenlijk ook... Hoewel misschien is het wel C:/Users/[username]/
Ja dir is idd gewoon waar m'n exe staat. Ik bedenk me net dat door argv[0] toe te voegen het sowieso opgelost moet zijn omdat het dan geen relative path meer is.

Anyway bedankt voor de reacties en het meedenken

PS. werkt alleen als je het niet via cmd opent dan

[ Bericht 3% gewijzigd door netolk op 26-07-2015 16:36:40 ]
Beware of the Raping Zebra's
pi_159486490
*kick*

Ik heb een programma en als ik die upload krijg ik een melding over dat er een "warning" bij het compileren was. Op mijn eigen computer krijg ik geen warning. Dus ik kan alleen maar raden waar het aan ligt.

Een van de dingen die ik heb toegevoegd is een null-check ergens. Dat heb ik zo gedaan:

1if ( bla && object.functie() && ( object.functie()->nogwat() == waarde ) ) {

Kan het zijn dat een of andere compiler, met een of andere instelling, die manier van null-check niet leuk vindt? Of zit ik met dat idee op het verkeerde spoor?
pi_159486615
quote:
0s.gif Op vrijdag 29 januari 2016 10:06 schreef Igen het volgende:
*kick*

Ik heb een programma en als ik die upload krijg ik een melding over dat er een "warning" bij het compileren was. Op mijn eigen computer krijg ik geen warning. Dus ik kan alleen maar raden waar het aan ligt.

Een van de dingen die ik heb toegevoegd is een null-check ergens. Dat heb ik zo gedaan:
[ code verwijderd ]

Kan het zijn dat een of andere compiler, met een of andere instelling, die manier van null-check niet leuk vindt? Of zit ik met dat idee op het verkeerde spoor?
Met deze summiere informatie kan niemand wat, maar die nullcheck lijkt me niks mis mee. Wat voor warning was het? Probeer eens te compilen met extra strenge warnings (-Wall -Wextra -Wpedantic).
pi_159486649
quote:
0s.gif Op vrijdag 29 januari 2016 10:15 schreef thabit het volgende:

[..]

Met deze summiere informatie kan niemand wat, maar die nullcheck lijkt me niks mis mee. Wat voor warning was het? Probeer eens te compilen met extra strenge warnings (-Wall -Wextra -Wpedantic).
Ik weet niet wat voor warning het is. Het komt uit een systeem voor "continuous integration" en die zegt alleen maar dat er een warning was en dat daarom het resultaat als mislukt wordt beschouwd, maar geeft geen precieze informatie.

Maar ik zal eens kijken of ik lokaal met die opties kan compileren.
pi_159486684
Ik bedenk net opeens dat er toch wel wat mis is met die nullcheck. Je haalt je pointer op uit een functie, maar wie garandeert dat die functie elke keer dezelfde waarde returnt?
pi_159486702
quote:
0s.gif Op vrijdag 29 januari 2016 10:19 schreef thabit het volgende:
Ik bedenk net opeens dat er toch wel wat mis is met die nullcheck. Je haalt je pointer op uit een functie, maar wie garandeert dat die functie elke keer dezelfde waarde returnt?
Oh, dat is een simpele property-getter dus dat is geen probleem. :)
pi_159486753
quote:
0s.gif Op vrijdag 29 januari 2016 10:20 schreef Igen het volgende:

[..]

Oh, dat is een simpele property-getter dus dat is geen probleem. :)
Kan zijn, maar voor de compiler is het gewoon een functie. Property kan bovendien door een andere thread aangepast worden tussen de twee calls.
pi_159486823
quote:
0s.gif Op vrijdag 29 januari 2016 10:22 schreef thabit het volgende:

[..]

Kan zijn, maar voor de compiler is het gewoon een functie. Property kan bovendien door een andere thread aangepast worden tussen de twee calls.
Ok. Als dat de warning blijkt te zijn dan is het een slimme compiler, vind ik. :D
pi_159486884
quote:
0s.gif Op vrijdag 29 januari 2016 10:25 schreef Igen het volgende:

[..]

Ok. Als dat de warning blijkt te zijn dan is het een slimme compiler, vind ik. :D
Of een static code analyzer; die vangen dergelijke zaken vaak wel op. Compilers malen hier doorgaans niet om; die laten je meestal gewoon null pointers dereferencen, want misschien is het wel de bedoeling dat je een segfault krijgt. :P.
pi_159498791
quote:
0s.gif Op vrijdag 29 januari 2016 10:28 schreef thabit het volgende:

[..]

Of een static code analyzer; die vangen dergelijke zaken vaak wel op. Compilers malen hier doorgaans niet om; die laten je meestal gewoon null pointers dereferencen, want misschien is het wel de bedoeling dat je een segfault krijgt. :P.
En toen bleek dat er helemaal geen fout in mijn code zat. Iemand anders had net iets gecommit met een foutje erin. Nou ja, kan gebeuren.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')