C语言中怎么用指针判断文章结束??

来源:百度知道 编辑:UC知道 时间:2024/05/04 13:55:44
小妹在编写C语言程序中遇到这样一个问题,程序如下:
#include<stdio.h>

jsvalue(int(*a)[9])
{
int value,I,j,k,num;
while((*a)[0])
{
value=(*a)[0];
for(j=0;j<9;j++)
if ((*a)[j]<value)
{num=(*a)[j];
for(k=j;k>0;k--)
(*a)[k]=(*a)[k-1];
(*a)[0]=num; }
a++;
}
}

main()
{int a[10][9]={{6,8,9,1,2,5,4,7,3},
{3,5,8,9,1,2,6,4,7},
{8,2,1,9,3,5,4,6,7},
{3,5,1,2,9,8,6,7,4},
{4,7,8,9,1,2,5,3,6},
{4,7,3,5,1,2,6,8,9},
{9,1,3,5,8,6,2,4,7},
{2,6,1,9,8,3,5,7,4},
{5,3,7,9,1,8,2,6,4},
{7,1,3,2,5,8,9,4,6}, };
int i,j;
jsvalue(a);
for(i=0;i<10;i++){
for(j=0;j<9;j++) {
printf("%d",a[i][j]);
if(j<=7)printf(",");}
printf("\n");}
writeDat(a);}
writeDat(int a[10][9])
{FILE *fp;
int i,j;
fp=fopen("out.dat","w");
for(i=0;i<10;i++){
for(

我觉得或者是版本问题,我过去在Win上记得是没有这个问题的,但是现在在Linux下用gcc编译也是出问题了,调试的时候频频说提示No Symbol,函数返回之后出现提示说segment fault(段错误)……估计,而且只有写文件的函数有这种错误,读文件的函数是没有的。估计是版本或者编码问题……(我在Linux下用的是UTF-8),不过输出是没有问题的,该做的东西它还是做了,就是好像结束的时候不正常,也许是这个版本的标准库有些问题引起的吧?(没有去看它的实现……)另外我在命令行使用也并没有报错(我使用的bash)……完成的功能是正常的。

if(fscanf(fp, , )==EOF)
用这个语句可以判断,如果文件结束,fscanf函数返回值为EOF(等于-1)。

用int feof(FILE *fp)这个函数当返回值为1表示到达末尾,为0表示没有到达

你还是说下jsvalue()的功能是什么,你的我看不懂,另外数组名是一个不能移动的指针,你的a++应该是有问题的