После успешного запуска entabulator мой дебатулятор не будет воспринимать сравнение символов, которое должно выйти из цикла while. После попытки «0 (вкладка) 8 (введите) (ctrl + D)» в качестве вклада вкладка правильно написана как пробелы, но после того, как rp будет увеличен до 8, цикл while, который должен прочитать 8, не выйдет и я получаю ошибку seg. Вот код:C: сравнение символов не удается
#include <string.h>
#include <stdio.h>
#define MAXLINE 100
char doc[9001];
main(int argc, char *argv[])
{
int max = 0;
char *rp = doc;
char *wp = rp;
char *tf = wp;
char *lp = doc;
while ((*(rp++) = getchar()) != EOF);
*--rp = '\0';
rp = doc;
j = 0;
while ((*rp != '\0') && (argc == 1)) {
if (*rp == '\n') {
lp = rp + 1;
*wp++ = *rp++;
}
while((*rp != '\t') && (*rp != '\0') && (*rp != '\n')) { /*this loops after a tab*/
*wp++ = *rp++;
}
if (*rp == '\t') {
rp++;
tf = lp + ((((wp - lp)/8) + 1) * 8);
while ((tf - wp) != 0)
*wp++ = 's';
}
}
if (*rp == '\0')
*wp = '\0';
printf("%s\n", doc);
}
Вы правы, я не могу читать вход, потому что я перезаписаны его. Спасибо. – user3003268