출력이 안됩니다

joey9705 Reply 7 years 35 weeks ago
#include <stdio.h> #include <string.h> main() { char line[1000]; char fix[4]; int len, p; int t = 0; while( (len = getline(line)) > 0 ) { for(p = 0; p < len; ++p) { if(line[p] != '\n') { fix[t] = line[p]; ++t; } else { t = 0; printf("%s\n", fix); } if(t == 4) { if(fix[0] == ' ' && fix[1] == ' ' && fix[2] == ' ' && fix[3] == ' ') {putchar('\t');} else if(fix[0] != ' ' && fix[1] == ' ' && fix[2] == ' ' && fix[3] == ' ') {putchar(fix[0]); putchar('\t');} else if(fix[0] == ' ' && fix[1] != ' ' && fix[2] == ' ' && fix[3] == ' ') {putchar(' '); putchar(fix[1]); putchar('\t');} else if(fix[0] == ' ' && fix[1] == ' ' && fix[2] != ' ' && fix[3] == ' ') {putchar(' '); putchar(' '); putchar(fix[2]); putchar('\t');} else if(fix[0] != ' ' && fix[1] != ' ' && fix[2] == ' ' && fix[3] == ' ') {putchar(fix[0]); putchar(fix[1]); putchar('\t');} else if(fix[0] != ' ' && fix[1] == ' ' && fix[2] != ' ' && fix[3] == ' ') {putchar(fix[0]); putchar(' '); putchar(fix[2]); putchar('\t');} else if(fix[0] == ' ' && fix[1] != ' ' && fix[2] != ' ' && fix[3] == ' ') {putchar(' '); putchar(fix[1]); putchar(fix[2]); putchar('\t');} else if(fix[0] != ' ' && fix[1] != ' ' && fix[2] != ' ' && fix[3] == ' ') {putchar(fix[0]); putchar(fix[1]); putchar(fix[2]); putchar('\t');} else printf("%s", fix); 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
만드신 getline 에서는 문자배열과 인트값을 인수로 사용하는데, while문에서는 line 배열만 전달해주고있네요.
joey9705 Reply 7 years 35 weeks ago
getline(line, 1000) 이렇게 수정을 해도 아무 값도 출력이 되지 않습니다. 어디가 문제인걸까요..
withcs1 Reply 7 years 35 weeks ago
char 배열을 string처럼 사용할 때에는 배열 마지막 값은 아스키코드값이 0인 null을 필요로합니다. fix배열 크기를 5로하시고 마지막에 null값을 넣어보세요