| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 799 人关注过本帖
标题:[求助]运行时windows报错
只看楼主 加入收藏
huxiaoyu1979
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-4-15
收藏
 问题点数:0 回复次数:11 
[求助]运行时windows报错

小弟编写了一个简单的程序,目的是将文件中的数据读入一个2维数组中,可以运行程序就总是windows报错,不知道报错是否影响程序运行,谢谢。

代码如下:
#include<stdio.h>

void main()
{
int a[325][7];// 30 is number of combination 4 is m
int i,j;

FILE *file_control;
file_control=fopen("data.txt","r");

for (i=0;i<326;i++)
{
for (j=0;i<8;j++)
{
fscanf(file_control,"%d",&a[i][j]);
printf("%d\n", a[i][j]);
}

}
fclose(file_control);
}

报错情况见附件。

搜索更多相关主题的帖子: windows 运行 
2007-04-22 10:31
huxiaoyu1979
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-4-15
收藏
得分:0 

不好意思,附件补上:)

图片附件: 游客没有浏览图片的权限,请 登录注册

2007-04-22 10:34
yu_hua
Rank: 2
等 级:论坛游民
帖 子:222
专家分:95
注 册:2006-8-10
收藏
得分:0 
以下是引用huxiaoyu1979在2007-4-22 10:31:19的发言:

#include<stdio.h>

void main()
{
int a[325][7];// 30 is number of combination 4 is m
int i,j;

FILE *file_control;
file_control=fopen("data.txt","r");

for (i=0;i<326;i++)
{
for (j=0;i<8;j++)//应为i<7
{
fscanf(file_control,"%d",&a[i][j]);
printf("%d\n", a[i][j]);
}

}
fclose(file_control);
}

2007-04-22 10:41
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 

我用3楼的程序试了一下,还是不行。
我这么改了一下,调试通过。请指点



#include<stdio.h>

void main()
{
int a[325][7];// 30 is number of combination 4 is m
int i,j;

FILE *file_control;
file_control=fopen("data.txt","r");


for (i=0;i<326;i++)
{
for (j=0;i<8;j++)
{
fscanf(file_control,"%d",&a[i][j]);
if(feof(file_control)!=0) break; /*feof() 俄用来检测文件指针是否
指向了文件结尾,如果是,则返回一个非0值,如果没有指向文件结尾,则返回0,所以,
没有这个语句时,当文件指针指向文件尾,已经没有数据可以读出了,但是没有在这时
结束程序,报错!,不知我这么解说对不对,也请高手指教,我也是biginner.。但是程序
能通过调试(在C-Free3.5中)。*/
printf("%d\n", a[i][j]);
}

}
fclose(file_control);
}


/*我们互相帮助哈 */


/*请批评来得更猛烈些吧!*/

2007-04-22 15:11
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 

void main()
{
int a[325][7];// 30 is number of combination 4 is m
int i,j;

FILE *file_control;
file_control=fopen("data.txt","r");

for (i=0;i<326;i++) /*326-->325*/
{
for (j=0;i<8;j++) /*8-->7*/
{
fscanf(file_control,"%d",&a[i][j]);/*使用file_control时应当验证file_control是否是NULL
即文件是是否打开*/
printf("%d\n", a[i][j]);
}

}
fclose(file_control);
}


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-04-22 15:18
huxiaoyu1979
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-4-15
收藏
得分:0 
file_control确实不是null,不知问题出在什么地方
2007-04-22 16:17
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
数组越界使用.

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-04-22 16:21
huxiaoyu1979
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-4-15
收藏
得分:0 
neverTheSame,能讲的清楚些吗?谢谢
2007-04-22 16:37
huxiaoyu1979
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-4-15
收藏
得分:0 

补充一下,开始确有数组越界问题。现有一个新问题就是数据没有按规定全读出来。
#include<stdio.h>

void main()
{
int a[70][5];// 30 is number of combination 4 is m
int i,j,p;
i=0;
j=0;
FILE *file_control;
file_control=fopen("data.txt","r");
if((file_control=fopen("data.txt","r"))==NULL)
printf("Cannot open file strike any key exit!");

for (i=0;i<71;i++)
{
for (j=0;i<6;j++)
{
fscanf(file_control,"%3d",&a[i][j]);
// printf("%3d", a[i][j]);
}

}
fclose(file_control);
p=a[3][4]+a[44][4];
printf("%3d",p);

}
最后想通过打印p来检查一下,结果这个就好像没有执行。而且data.txt还有一小部分没读完。

2007-04-22 16:53
huxiaoyu1979
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-4-15
收藏
得分:0 
jA8vElBS.txt (1.39 KB) [求助]运行时windows报错


data文件见附件。谢谢大家的共同参与指导
2007-04-22 16:55
快速回复:[求助]运行时windows报错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019450 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved