C语言文件处理函数?

来源:百度知道 编辑:UC知道 时间:2024/07/02 11:33:29
我想对一个字库文件进行操作,字库文件格式为
a 啊
bo 波
每一行为9个字节
我现在要将每一行分别读入一个结构数组元素中
rewind(fp);
while ( !feof(fp) )
{
fgets(temp,1024,fp);
zi_file[line] = (zi_ku_ptr)malloc(sizeof(struct zi_ku));
ch_to_int(temp,11,zi_file[line]);//处理函数
line++;
}
fclose(fp);
但是只能处理有限的几行,多了就不行了
我觉得就是行末尾的换行符处理的有问题,请大家帮帮忙
解决的话,再加分
谢谢大家,但是我还有一个小问题,顺便问一下
就是
#include <iostream>
using namespace std;
int main()
{
char ch;
cin>>ch;
while (ch!='#')
{
cout<<"OK"<<endl;
cin>>ch;
}
system("pause");
return 0;
}
怎样修改一下才能每读一个字符就打印出一个"OK"直到读入"#"为止
先谢谢大家了

stl底层流操作,能说清楚吗?

试:
while ( fgets(temp,1024,fp) !=NULL)
{
zi_file...
}
fclose(fp);

记得好像换行的话,文件里处理成2个字符的,就是一个是回车符加换行符的方式来表示的,而存文件倒是只要存个“\n”就可以了,所以放的时候你是放一个字符,读要读2个字符,好像是的
多行是问什么不行?有没有错误信息

每读一个字符就打印出一个"OK"直到读入"#"为止,只能在输入流被读完了以后,才能输出你的OK,要是想分开操作,那么得用到STL中的底层流操作

使用这样的操作:

ifstream s;
s.open(....);//打开文件
s.getline(....) //一行一行的读取文件

这样就不会出错了!