Я делаю простую RLE в C, она сканирует символы и выводит их в сжатом формате в стандартный вывод, но первый символ, проанализированный с помощью hexdump, имеет рядом с ним 00. Любой способ избавиться от этого парня?
#include <stdio.h>
#include <ctype.h>
int main()
{
char current, previous = 0;
int AoR = 1;
float unc_am = 0, am = 0, ratio;
while (scanf(" %c", ¤t) != EOF)
{
if (isupper(current))
{
if (current != previous && AoR == 1) //ONCE
{
printf("%c", previous);
AoR = 1;
am++;
Это просто начало, сам scanf находится в состоянии while.
hexdump выглядит так:
hexdump main.log
0000000 4200 5757 3342 3757 3742 3357 3342 3457
0000010 3342 3657 3942 3657 3642 000a
000001b
Или это, если сравнивать с тем, что я на самом деле хочу сделать.
Hexdump
EXPECTED OUTPUT CURRENT OUTPUT
================================================================================================
00000000: 42 57 57 42 33 57 37 42 BWWB3W7B | 00000000: 00 42 57 57 42 33 57 37 .BWWB3W7
00000008: 37 57 33 42 33 57 34 42 7W3B3W4B | 00000008: 42 37 57 33 42 33 57 34 B7W3B3W4
00000010: 33 57 36 42 39 57 36 42 3W6B9W6B | 00000010: 42 33 57 36 42 39 57 36 B3W6B9W6
00000018: 36 0a 6. | 00000018: 42 36 0a B6.
Есть какие-нибудь подсказки, как решить эту проблему?