fgets()怎么用啊?
#include <fstream.h>
#include <stdio.h>
#include <iostream.h>
void main()
{
FILE *file;
file =fopen( "out.txt ", "a+ ");
fseek(file,0,SEEK_END);
long size = ftell(file);
cout < < size < <endl;
char * t = new char[10];
t = fgets(t,size,file);
cout < < t < <endl;
delete t;
}
目录下有out.txt这个文件,运行老是报错。
望高手指点!
[解决办法]
FILE *file = fopen( "out.txt ", "a+ ");
if (file != NULL)
{
fseek(file, 0, SEEK_END);
long size = ftell(file);
cout < < size < < endl;
char * t = new char[size];
t = fgets(t, size, file);
cout < < t < <endl;
delete t;
fclose(file);
}
[解决办法]
稍看了一下,读/写文件之前要用fseek,你在t = fgets(t, size, file);没有用,这时文件指针在尾部,要出错
[解决办法]
函数申明: int fseek(FILE *fp, LONG offset, int origin)
函数用途: 设定文件操作指示器位置
头 文 件: stdio.h
输入参数: fp:文件指针; offset:相对于origin规定的偏移位置量;
origin:表示指针移动的起始位置,可设置为以下三种情况之一:
SEEK_SET: 文件开始位置
SEEK_CUR: 文件当前位置
SEEK_END: 文件结束位置
函数申明: char *fgets(char *str, int num, FILE *fp)
函数用途: 读一行字符,该行的字符数不大于num-1
头 文 件: stdio.h
输入参数: str:存放读入的字符数组指针;num:最大允许的读入字符数;fp:文件指针
返 回 值: 操作成功时返回str指针,失败时返回NULL