나는 당신이 아마 너무 많이 들었던 것처럼 스스로 C를 가르치려고하고 있으며, 내가 뭘 잘못하고 있는지 알 수 없다. 내가하고있는 운동의 요점은 탭을 지정된 수의 공백으로 대체하는 것입니다. 그것은 unix 명령 확장을 모방 한 것으로되어 있습니다. 여기에 지금까지 가지고 무엇을 : 나는 그것을 실행하고 (나는 GNU/리눅스를 사용하고 있기 때문에), Ctrl + D를 쳐서 입력, 마무리를 시작하고 가비지 문자를 인쇄 할 수있게된다putchar()을 사용하여 왜 쓰레기를 인쇄하고 있습니까? 이 for 루프에서?
#include <stdio.h>
int main (int argc, char *argv[])
{
int spacecount = atoi(argv[2]);
int i, d, b, g, toput;
char string[1000];
for (d = 0, b = 0; (string[d + b] = getchar()) != EOF; d++) {
if (string[d + b] = '\t') {
toput = d % spacecount;
for (i = 0; i < toput; i++) {
if (string[d + b] = '\n')
i = toput;
string[d + b] = ' ';
b++;
}
}
}
g = d;
putchar('\n');
for (d = 0; d < g; d++)
putchar(string[d]);
putchar('\n');
}
. 나는 for 문없이 for 루프에서 getchar()을 할당받은 다른 문자열을 가지고 동일한 초를 반복했다. 그리고 가비지가 아닌 문자를 출력한다. 나는 정말로 혼란 스럽다. 내가 도대체 뭘 잘못하고있는 겁니까?
사용 이용해 '='로서위한 서명,'=='은 비교를위한 것입니다. 둘을 섞어 쓰지 마라! –
물론! 고맙습니다. – Karelisadog