//データを受け取る。
//このとき改行文字等は除外しないと後で思わぬエラーが生じる

for (i = 0; (c = getchar()) != EOF; i++) {
if (c != '\r' && c != '\n')
pBuf[i] = c;
else
i--;
}

こういうソースがあるんですが、「i--」の部分が分かりません。
i=i-1をした後、for内でi=i+1をしてるってことですよねこれ。
これじゃ元に戻って無限ループしちゃうんじゃないですか?