C语言从TXT读取数字,包含空格和换行

C语言 码拜 8年前 (2016-09-12) 4756次浏览
C语言从TXT读取数字,包含空格和换行
#include <stdio.h>
#define A 242
#define B 184
int main()
{
char data[A][B];
FILE *fp;//文件指针
fp = fopen(“tz00.txt”,”r+”);//打开TXT文件
if(!fp)
printf(“不能找到tz00!”);//判断能否能打开文件
for(int i=0;i<243;i++)
{
for(int j=0;j<185;j++)
fscanf(fp,”%d”,&data[i][j]);
}
fclose(fp);
printf(“%d” , data[5][5]);
system(“pause”);
return 0;
}
输出的数字和TXT上的数字不符合,显示-15,还会出现Run-Time Check Failure #2 – Stack around the variable “data” was corrupted.这种错误,已知本人的TXT文件里的数字的243*185的行和列
解决方案

30

“多一少一”问题占程序员常犯错误的10%以上!
避免“多一少一”问题的方法之一是将例如<10甚至<5的数代入程序片断,搬手指头心算验证一下程序到底应该写为
x、x-1、x+1中的哪个?
<、<=、==、>、>=中的哪个?

10

首先,程序中数组越界了,这是这个程序最主要的问题。
其次,这个程序还有一个潜藏的问题,就是静态分配了一个大的二维数组。目前来说A和B还不算太大,所以这个问题没有充分暴露出来。假如A和B再大一点,这种静态分配大数组的方式应该是行不通的,编译器会报错。所以最好采用动态内存分配。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C语言从TXT读取数字,包含空格和换行
喜欢 (0)
[1034331897@qq.com]
分享 (0)