[ad_1]
For days I have been stuck on this problem: I have an input.bin file and in another output.bin file I want to write every single character of the first file but with the addition of the bit 1111 before and after each of them so that when I give bash od -t x1, will be shown each character with the letter f before and after.
Content of input.bin:
0G;#%?M]BR=`Q&E}P.>Q\,- RUG}"XGFE
M6ZTSAH'OI]L":NW^O\K9~BUI58_J0;,S@
HEE}{!J6&ZV'YESUZZD"^'(XTU<N}SDL-MOCR{YCYOA7&-2NLTW$5QY*
J#KHLUL]T>M/2KDWR,>HHV|ZK6XX1 ~=SKF>52<M#U3T,
``V#>ER>BJYDO%2LG-HH]3UX=FE0VTS]B*2S6[~96<-2Y3I"
"O[F:6&EB)'R0\_GHU,7JABT,J-^-XTFQ3
>FK"UHLSVH0|N-0$X K)<1^DPH2|>ZG(CA&6[RHHEQ[#8
T,$^.B%ZQC`]6OJ.)I&A(_K1UL\`"{
5$(6O1;PIZL8_H3$6LGU`_O)X,7"AXFM2M$E+CT]0 H}IZE3D0.GX#V
+?]Z},HP.GQ:KW\N(EI$42%C1NFEB >_CTESBJ'PV3<HRE0Z`70/^`:Y!$I
TCP6V&!'C]4$*X?&!DQ)%%U=UF_}@)WW6CBDVY29%"@}-TIF0-
5D[I_OR):CM4{VHLQW9@:O)S%H5D%{@ZLXAD'JKLMEBZUYBD[?/"KPBBET
)EFU#_S^+6QNB'H:}0V=M'OQB~BOUBV$V
R"1FDX!LLI'O DF0EA#H(YQSWOG>[email protected]?
ZBFQF$LQW|JLKJ>N)BOM~5NEOV7G&LEWFE~U8=^15
H AUWREA92IZ/|I8)SXJ0Q8H4II#B}SOM4QVX4W!T7C
,MGII1X=BMK;ZXV#6$3.UJP1=;;M,^R~K<'+`A+NTE/96N'GO^J1NA?#H
HG)R0U.^HN`_>Z9MP|D|BDXR]N-IGAGCCDUUQOACBPVYGX"E
LS|ZAOKF{H#3]7GB;)6-}K"1}BEHR6KUY
7)%R(@E)IYZ1~+Q7#YOLDY66VO^Y<C'PJMUB_2VJIAA
.~C$?XLH9TQNHL6H~J11WTH:RDC`1CS>_=9~T|\K?AY/0WVP-QUX3,D!?
4(9,P~ I~#ABXYX1NEH+PM<?O(,G$9"CS.>SR0P)1BB$3!NQ~.;VAD=S
CPP_KVGN#^J\L5{@DI>8ZUFIOL0ZIXAMH%UKECP:UF
0S8XL`&BCDO6SQ=/HJOEC(5S5F8\QYIQ6S5_JE>Q<~* MD?MXD[F2
Z$1J=[)K!C4$>)VIYR|<NQJY&?T%[email protected]
-1|IKO{RSRMXAFMMD{2D9;"X6H.|CFSMX$
PTZG5:H"O5OJ0*[3[CKBK!N5$VYK[N%OX \_!IUIQ'=|!Q$
S)06F>A@"[email protected]`>DZ6W(IE '>VK;9:B`CX^KW$3V 0P"JBL$WW
!\\ WV_K48T.5F~GFV;{@XJIX\53G}V4\%N$K@&I^)
T]%C0!+\'2N-S0=UBGBJ>P_&ZO="C~+]+I:2MSXS}
E8I<:F6B#.Y=ERC}RC^ML~8}A.AS[^BY. HSAN.)?!.NI.BKVZXR?="
$D,7N}U|W:\,8T"IZ43A=-7\(#.JE0
L_Q)3S0ZN$KY]{MY=BR'CASQIV?~XN%J+~GPZV"AB!EUI}AZEB&B^
DF7?{N)NC:GB$-R\UQC$"LBDELVN\DLPQ,^;X` O/
Content of input.bin if I read it doing od -t x1 input.bin
from bash:
0000000 30 47 3b 23 25 3f 4d 5d 42 52 3d 60 51 26 45 7d
0000020 50 2e 3e 51 5c 2c 2d 20 52 55 47 7d 22 58 47 46
0000040 45 0a 4d 36 5a 54 53 41 48 27 4f 49 5d 4c 22 3a
0000060 4e 57 5e 4f 5c 4b 39 7e 42 55 49 35 38 5f 4a 30
0000100 3b 2c 53 40 0a 48 45 45 7d 7b 21 4a 36 26 5a 56
0000120 27 59 45 53 55 5a 5a 44 22 5e 27 28 58 54 55 3c
0000140 4e 7d 53 44 4c 2d 4d 4f 43 52 7b 59 43 59 4f 41
0000160 37 26 2d 32 4e 4c 54 57 24 35 51 59 2a 0a 4a 23
0000200 4b 48 4c 55 4c 5d 54 3e 4d 2f 32 4b 44 57 52 2c
...
0003021
The output I want is like:
0000000 f3 0f f4 7f f3 bf f2 3f f2 5f f3 ff f4 df f5 df f4 2f f5 2f f3 df f6 0f f5 1f f2 6f f4 5f f7 df
0000020 f5 0f f2 ef f3 ef f5 1f f5 cf f2 cf f2 df f2 0f f5 2f f5 5f f4 7f f7 df f2 2f f5 8f f4 7f f4 6f
This is my last attempt, but I get 31 31 31 31 00 instead of 1111:
FILE *in, *f4;
in = fopen("input.bin", "rb");
char ch;
char ao[] = "1111";
f4 = fopen("output.bin", "wb+");
while (ch != EOF) {
if ((ch = fgetc(in)) != EOF) {
printf("%c ", ch);
fwrite(ao, 1, sizeof(ao), f4);
fprintf(f4, "%c", ch);
fwrite(ao, 1, sizeof(ao), f4);
}
}
fclose(in);
fclose(f4);
Can you help me?
[ad_2]