[求助]关于文件读操作
#include<stdio.h>main()
{
char *s[500];
int i,j;
FILE *fp;
fp=fopen("in.txt", "r");
for(i = 0;i < 500;i ++)
{
if(!feof(fp))
{
fgets(s[i], 4, fp);
}
else
{
break;
}
}
for(j = 0;j < i;j ++)
{
printf("%s",s[j]);
}
fclose(fp);
getch();
}
in.txt 文件中就是
abc
def
ghi
可是不能够正确读出来,是什么原因啊?
----------------解决方案--------------------------------------------------------
include<stdio.h>
main()
{
char *s[500];
int i,j;
FILE *fp;
fp=fopen("in.txt", "r");
for(i = 0;i < 500;i ++)
{
if(!feof(fp))
{
fgets(s[i], 4, fp); ---------》换成getline(fp,s[i],'\n');试试看
}
else
{
break;
}
}
for(j = 0;j < i;j ++)
{
printf("%s",s[j]);
}
fclose(fp);
getch();
}
----------------解决方案--------------------------------------------------------
#include "Stdio.h"
#include "Conio.h"
#include<stdio.h>
main()
{
char str[3][5];
char (*s)[5];
int i,j;
FILE *fp;
s=str;
if((fp=fopen("d:\\in.txt", "r"))==NULL) exit(0);
for(i = 0;i <3;i ++)
{
if(!feof(fp))
{
fgets(s[i],128, fp);
}
else
{
break;
}
}
for(j = 0;j < i;j ++)
{
printf("%s",s[j]);
}
fclose(fp);
getch();
}
已经改好了,
您对指针的理解有些偏差,另外,
char *fgets(char *s,int n,FILE *fp);
从fp中读入字符串,存入s,最多读n-1个字符,当读到换行回车符,文件末尾或读满n-1个字符时函数返回,且在字符串末尾添加'\0'结束
----------------解决方案--------------------------------------------------------
3楼的源程序好像有些问题
第一:头文件,第三个include应改为
#include <stdlib.h>
第二:若d:\\in.txt 不是楼主那样简单的就会出错
以上不知我指出的是否有问题,还望各位指正
以下是我自己写的一个程序:
#include "Stdio.h"
#include "Conio.h"
#include<stdlib.h>
void main()
{
FILE *fp;
char c;
if((fp=fopen("d:\\in.txt", "r"))==NULL) exit(0);
while(!feof(fp))
{
fread(&c,1,1,fp);
putchar(c);
}
fclose(fp);
}
----------------解决方案--------------------------------------------------------
饿,那是我在复制楼主代码过来的再加上WTC摸板下带的,忘了改过来,不好意思,去掉就行了
至于改变那个路径是我用来测试的,因为我把文件放D盘里了。
楼主的程序问题主要出在指针和fgets函数上,不过仍谢谢楼上的提醒。
[此贴子已经被作者于2006-8-12 21:14:28编辑过]
----------------解决方案--------------------------------------------------------
我是4楼的,
可能我没说清楚,我指的文件不像楼主给的那么简单不是指文件路径,而是指文件的内容
如果文件内容不是一行只有几个字符,只有几行的话,用vc就会发现执行到最后会出问题
另外:问二楼的getline函数包含在哪个头文件中,我怎么没找到呀
----------------解决方案--------------------------------------------------------