K&R (ex 1-17) のエクササイズを試していて、独自の解決策を思いつきました。問題は、おそらく無限ループでプログラムがハングしているように見えることです。NUL ('\0') 文字の挿入を省略したのは、C が一般に文字列の末尾に自動的に付加することがわかったからです (そうではありませんか?)。
誰かが何が間違っているかを見つけるのを手伝ってもらえますか?
Win8(x64)でCygwinでGCCコンパイラを使用しています..
質問 - 80 文字を超えるすべての入力行を出力してください
#include<stdio.h>
#define MINLEN 80
#define MAXLEN 1000
/* getlin : inputs the string and returns its length */
int getlin(char line[])
{
int c,index;
for(index = 0 ; (c != '\n') && ((c = getchar()) != EOF) && (index < MAXLEN) ; index++)
line[index] = c;
return (index); // Returns length of the input string
}
main()
{
int len;
char chArr[MAXLEN];
while((len = getlin(chArr))>0)
{
/* A printf here,(which I had originally inserted for debugging purposes) Miraculously solves the problem!!*/
if(len>=MINLEN)
printf("\n%s",chArr);
}
return 0;
}