注册 登录
编程论坛 C++教室

为什么定义257的数组.长度却有300多??

高宽宏 发布于 2008-10-16 14:07, 961 次点击
#include <fstream.h>
char a[257];
int out(char a[]){
  int n=strlen(a);
   for(int i=0;i<n;i++)
   cout<<a[i];
   cout<<endl;
   cout<<n<<endl;
   return n;}
void main()
  {int i=0;
    fstream ftemp;
    ftemp.open("cffx.txt",ios::in);
    while(a[i]!=EOF&&i<500) {
    ftemp.get(a[i]);
   i++;}
   out(a);}
5 回复
#2
守鹤2008-10-16 14:44
while(a[i]!=EOF&&i<500)
若文件中的字符个数>257;
while 语句中的表达式却是成立的,
将会继续执行。导致字符数组越界。
#3
高宽宏2008-10-16 18:33
那为什么把数组定义在主函数里却要1000呢?
#4
高宽宏2008-10-17 13:09
各位大虾们发表下意见啊~~
我就是不知道怎么会事~~
#5
anthony6342008-10-17 13:32
a[变量]:运行期确定值,编译期间无法检查
a[常量]:编译期确定值,编译器能检查错误
#6
高宽宏2008-10-17 22:53
有点启示.但不明白..
能说明白点么??
谢..
1