私はK&Rを使用しており、80文字を超えるすべての入力行を出力するプログラムを作成しようとしました。ターミナルからプログラムを実行すると、何も返されません。どこが間違っているのか誰か教えてもらえますか?また、私が確信していない部分の1つは、線s[i] = '\0';
です。誰かがこれが何をするのか説明してもらえますか?
#include <stdio.h>
#define MAXLINE 1000
#define LENGTH 80
int get_line(char line[], int maxline);
/* program to print all lines longer than 80 characters */
main()
{
int len; /*current line length*/
char line[MAXLINE]; /*current input line*/
while((len = get_line(line, MAXLINE)) > 0) /*while length of the line is greater than zero*/
if (len > LENGTH) { /*if the length is greater than 80*/
printf("%s", line); /*print that line*/
return 0;
}
}
/* getline: read a line into s, return length */
int get_line(char s[], int lim)
{
int c, i;
for (i=0; i<lim-1 && (c=getchar())!=EOF && c!='\n'; ++i) /*if i is < 1000 & input is = EOF & input is != newline add one*/
s[i] = c; /*assign a value to each character*/
if (c == '\n') {
s[i] = c;
++i;
}
s[i] = '\0'; /*unsure what '\0' does*/
return i; /*return the length*/
}