请高手指点EOF问题
lumos 2008-09-20 05:42:03 最近在温习C语言的时候遇到一个问题,为什么在我电脑上运行需要遇到EOF结束的程序,怎么都结束不了呢
我看网上说用CTRL+z或者F6,但是我怎么都不能成功,每次CTRL+z都会变成^z,我用的IDE是VS2005,谢谢了
下面是我的程序:
#include<stdio.h>
#define MAXLINE 1000 /*最大输入行的大小*/
int getline (char line[ ],int maxline);
void copy(char to[ ],char from[ ]);
/*打印最长的输入行*/
main()
{
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;
}
//getline: 将一行读入s中并返回其长度
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] = '\n';
return i;
}
//copy:从from拷贝的to;假定to足够大
void copy( char to[ ],char from[ ])
{
int i;
i = 0;
while ( ( to[i]=from[i]) !='\0')
++i;
}