注册 登录
编程论坛 新人交流区

EOF怎样使用?

xiaxin 发布于 2007-10-22 17:07, 803 次点击
#include<iostream>
#include<cstring>
const int MAX=1000;
using namespace std;
void input( char *array[],int &length)
{
length=0;
char lines[11];
while(1)
{
cin.getline(lines,11);
if(strcmp(lines,"EOF")==0) break;
array[length]=new char[strlen(lines)+1];
strcpy(array[length],lines);
length++;
}
}
void output(char *array[],int length)
{
int i;
for(i=0;i<length;i++)
{
cout<<array[i]<<endl;
delete [] array[i];
}
}
int main()
{
char *p[MAX];
int line;
input(p,line);
output(p,line);
return 1;
}
请问错在哪儿?谢谢了!
2 回复
#2
xiaxin2007-10-22 23:15

改为这样就可以了,
void input( char *array[],int &length)
{
length=0;
char lines[11];
while( cin.getline(lines,11))
{
if(strcmp(lines,"EOF")==0) break;
array[length]=new char[strlen(lines)+1];
strcpy(array[length],lines);
length++;
}
}
    我还不容易找到的和大家分享以下.
给大家介绍一下EOF:
EOF的意思是end of file,表示输入的结束。
scanf函数的返回值如果为EOF的话,就表示输入结束了如:
  while (scanf("%d%d", &a, &b)!=EOF)
   {
     ...
   }
EOF可以表示返回值是整数,也可以是一个字符串,
输入时按F6即可.


#3
缘吇弹2007-10-23 00:02

哇...LZ好厉害哦!

1