【发布时间】:2015-06-20 13:28:01
【问题描述】:
我一直在钻研 C 而不是使用scanf() 我想尝试构建我自己的函数来获得一整行。我编写了这个函数,它返回一行要在我的主函数中进行比较,但它不会跳出循环来打印我的结果。
我不知道这是实际功能还是我在main() 中是如何实现的。
代码如下:
main() {
int len;
int max = 0; //Largest line so far..
char linetemp[MAXLINE];
char linemax[MAXLINE];
while((len = getLine(linetemp,MAXLINE))> 0){
if(len>max){
max = len;
cpy(linemax,linetemp);
}
}
if(max>0) { //If their was even a line
printf("Longest Line:\n %s \n", linemax);
} else {
printf("No lines found!");
}
}
int getLine(char l[], int lim) {
int c, i;
for(i=0; i< lim - 1 && (c=getchar())!= '\n' && c != EOF ;++i)
l[i]= c;
if(c =='\n') {
l[i]= c;
++i;
}
l[i]= '\0';
return i;
}
【问题讨论】:
-
在到达 EOF 之前,您不会跳出循环。你的代码对我来说看起来不错。你还没有发布
cpy的实现。这可能是您问题的根源吗?