专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

DEV-C++ 查看结果,该如何解决

发布时间:2011-06-28 15:20:30 文章来源:www.iduyao.cn 采编人员:星星草
DEV-C++ 查看结果
/*读入一组文本行,打印最长的一行*/
 
#include<stdio.h>
#define MAXLINE 1000

int getline(char line[],int maxline);
void copy(char to[],char from[]);

int main(void)
{
int len;
int max;
char line[MAXLINE];
char longest[MAXLINE];

max=0;
while((len=getline(line,MAXLINE))>0)
if(len>max){
max=len;
copy(longest,line);
}
if(max>0)
printf("%s",longest);
return 0;
}

int getline(char s[],int lim)
{
int c,i;

for(i=0;i<lim-1&&(c=getchar())!=EOF&&c!='\n';++i)
s[i]=c;
if(c=='\n'){
s[i]=c;
++i;
}
s[i]='\0';
return i;
}

void copy(char to[],char from[])
{
int i;

i=0;
while((to[i]=from[i])!='\0')
++i;
}

一直都在输入 要输入什么才能结束查看结果

------解决方案--------------------
ls上说"getline最小返回值只能是1",不太正确;lz的程序,输入Ctrl+Z是可以结束循环的。
C/C++ code

int getline(char s[], int lim) 
{
    int c,i;

    /*
        循环结束条件有3个, i>=lim-1 或者 (c=getchar())==EOF 或者 c=='\n'
        输入Ctrl+Z,就能让getchar得到EOF,这种情形下,返回值是0。
     */
    for(i = 0; (i<lim-1) && ((c=getchar())!=EOF) && (c!='\n'); ++i)
         s[i]=c;

    if(c == '\n')
    { 
         s[i] = c;
         ++i;
    } 
    s[i]='\0';
    return i; 
}

------解决方案--------------------
直接按ctrl+z啊,大哥.
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: