在c++中如何实现文件操作?请各路高手赐教!

cowboy2006 2003-07-08 04:16:41
1.在指定的目录下建立一个文件。
2.向建立的文件中写记录.(以学生档案为例).
3.按指定方式读出指定文件。
4.操作结束,关闭文件。
5.怎样判断一个文件是否存在。
6.请问各路高手,学习文件操作有什么心得?
书上没有具体说明白,所以请各路高手不吝赐教!(呵呵,最好是在以上关键位置,加上详细的说明)
谢谢!(有必要,我会再加分)
...全文
42 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
vcsongs 2003-07-10
  • 打赏
  • 举报
回复
不考虑可移植性的时候, 直接调用操作系统的API/系统调用的话会更方便些.
比如你的问题5.
在win平台下面可以使用GetFileAttributes API
在unix/linux平台下面可以使用stat函数.
有些人使用c库函数fopen打开文件来判断文件是否存在有时候会出问题. 比如你没有对这个文件的读写操作权限或者这个文件被其它进程锁定的时候. 这个方式可能产生假象...
farfh 2003-07-10
  • 打赏
  • 举报
回复
打开一个文件,如果失败,不就知道它不存在了。我一般就这么判断的。
RedSunRS 2003-07-10
  • 打赏
  • 举报
回复
1.在指定的目录下建立一个文件。_open() fopen()
2.向建立的文件中写记录.(以学生档案为例)._write() fwrite()
3.按指定方式读出指定文件。_read() fread()
4.操作结束,关闭文件。_close() fclose()
5.怎样判断一个文件是否存在。_access() ?
6.请问各路高手,学习文件操作有什么心得?
CRT ,API...,STL?
Davice 2003-07-09
  • 打赏
  • 举报
回复
同意楼上的
farfh 2003-07-09
  • 打赏
  • 举报
回复
stl,方便好用简单,呵呵
zteliubin 2003-07-08
  • 打赏
  • 举报
回复
呵呵,也可,习惯了用原始的操作,感觉要自如一些。
cjnet 2003-07-08
  • 打赏
  • 举报
回复
看看C++里边的的关于fstream和strstrea等类库的操作,你就会明白怎样操作文件的。
happy2program 2003-07-08
  • 打赏
  • 举报
回复

string strfilename;
ofstream ofile(strfilename.c_str());
if(ofile)//open success
{
ofile.wrileline(...);//may write a line record per
}
else //open failed
{
}
//ofile close auto
fangqiangqiang_0 2003-07-08
  • 打赏
  • 举报
回复
你可以使用iostream等基础类的流操作
例如:
ifstream common("common.ecs"); /* construct file I/O streams */
ifstream public_key("public.ecs");
就无需用open等函数操作了

比c的要更简单
具体例子手头没有。
farfh 2003-07-08
  • 打赏
  • 举报
回复
up
zteliubin 2003-07-08
  • 打赏
  • 举报
回复
typedef struct
{
char name[20];
unsigned char age;
unsigned char sex;
...
}TStud;

write()
{
TStud stud;
FILE *fp = fopen(filename,"wb");
if(fp == NULL) ...

strcpy(stud.name,"abc");
std.age=20;
std.sex=0;

fwrite(&stud,sizeof(TStud),1,fp);

.....
fwrite(&std,sizeof(TStud),1,fp);

...
fclose(fp);
}

read()
{
TStud stud;
FILE *fp = fopen(filename,"rb");
if( fp == NULL) ....
while(1)
{
if(fread(&stud,1,sizeof(TStud),fp)<=0)
break;
printf("name=%s,age=%d,sex=%d\n",stud.name,stud.age,stud.sex);
}
fclose(fp);
}


关键:fread,fwrite,二进制方式读写("rb","wb"),就很方便。

65,204

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧