output이 input과 그대로 똑같이 나오는데 오류가 뜨네요

joey9705 Reply 7 years 35 weeks ago
#include <stdio.h> #include <string.h> main() { char line[1000]; int length, p, t; while((length = getline(line, 1000)) > 0) { for(p = 0; p < length; ++p) { if(line[p] != '\t') putchar(line[p]); else if(t%4 == 0) printf(" "); else if(t%4 == 1) printf(" "); else if(t%4 == 2) printf(" "); else if(t%4 == 3) printf(" "); ++t; if(line[p] == '\n') t = 0; } } } int getline(char s[],int lim) { int c, i; for (i=0; i < lim-1 && (c=getchar())!=EOF && c!='\n'; ++i) s[i] = c; if (c == '\n') { s[i] = c; ++i; } s[i] = '\0'; return i; } 공백 개수도 다 세본거 같은데..어디가 틀린건가요?
withcs1 Reply 7 years 35 weeks ago
t값 초기화문제 인거같아요 그래도 안되면 다시질문해주세요
joey9705 Reply 7 years 35 weeks ago
t값 초기화가 어떻게 문제가 되고 있는건지 전혀 모르겠습니다. t값이 잘못 설정되고 있다면 output이 input과 똑같이 출력될 수 없지 않나요??
withcs1 Reply 7 years 35 weeks ago
t값때문에 아웃풋 공백갯수가 꼬인다고 생각했는데 아니었네요 탭1234탭1234탭1234...계속 넣어보세요 출력되는 공백수가 적어졌다 늘어날겁니다. 인풋에서 \t가 차지하는 공간갯수도 생각하셔서 4개단위로 나눠주셔야해요