实验3 文件操作
来源:互联网 发布:淘宝数码相机 编辑:程序博客网 时间:2024/06/11 23:48
一.实验目的与要求:
- 学会使用文件操作函数实现对文件打开、关闭、读、写等操作。
- 学会对数据文件进行简单的操作。
- 深入理解 C++的输入输出的含义及其实现方法。
- 掌握标准输入输出流的应用。
二.实验过程:
- 运行调试第8章编程示例8-2文本显示程序;将其改写为一个随机点名的程序,可以参考以下步骤:
(1) 读入指定文本文件的程序,文本文件格式见参考内容;
(2) 用随机函数根据文本文件的记录数量生成一个随机数;
(3) 根据这个随机数,从所读取的记录中找到对应的记录,并输出显示;
- 若还有时间,请尝试运行调试第8章编程示例8.3-4;完成练习题8.4.1-3。
三.示例代码:
- 编程示例8-2文本显示程序:
#include <iostream>#include <fstream>using namespace std; int main() { int c; // input character int i; // loop counter char filename[81]; char input_line[81]; cout << "Enter a file name and press ENTER: "; cin.getline(filename, 80); ifstream file_in(filename); if (! file_in) { cout << "File " << filename << " could not be opened." << endl; system("PAUSE"); return -1; } while (1) { for (i = 1; i <= 24 && ! file_in.eof(); i++) { file_in.getline(input_line, 80); cout << input_line << endl; } if (file_in.eof()) break; cout << "More? (Press 'Q' and ENTER to quit.)"; cin.getline(input_line, 80); c = input_line[0]; if (c == 'Q' || c == 'q') break; } system("PAUSE"); return 0;}
- 文本文件格式,从第二行起:
序号 学号 姓名
1 31140906012* 商**
2 31150906010* 王*
3 31150906011* 韩*
- 编程示例8-3:
#include <iostream>#include <fstream>using namespace std; int get_int(int default_value);char name[20]; int main() { char filename[81]; int n; int age; int recsize = sizeof(name) + sizeof(int); cout << "Enter file name: "; cin.getline(filename, 80); // Open file for binary read and write. fstream fbin(filename, ios::binary | ios::out); if (!fbin) { cout << "Could not open file " << filename << endl; system("PAUSE"); return -1; } // Get record number to write to. cout << "Enter file record number: "; n = get_int(0); // Get data from end user. cout << "Enter name: "; cin.getline(name, 19); cout << "Enter age: "; age = get_int(0); // Write data to the file. fbin.seekp(n * recsize); fbin.write(name, 20); fbin.write(reinterpret_cast<char*>(&age), sizeof(int)); fbin.close(); system("PAUSE"); return 0;} // Get integer function// Get an integer from keyboard; return default// value if user enters 0-length string.//int get_int(int default_value) { char s[81]; cin.getline(s, 80); if (strlen(s) == 0) return default_value; return atoi(s);}
- 编程示例8-4:
#include <iostream>#include <fstream>using namespace std; int get_int(int default_value);char name[20]; int main() { char filename[81]; int n; int age; int recsize = sizeof(name) + sizeof(int); cout << "Enter file name: "; cin.getline(filename, 80); // Open file for binary read access. fstream fbin(filename, ios::binary | ios::in); if (!fbin) { cout << "Could not open file " << filename << endl; system("PAUSE"); return -1; } while(1) { // Get record number and go to record. cout << "Enter file record number (-1 to quit): "; n = get_int(-1); if (n == -1) break; fbin.seekp(n * recsize); // Read data from the file. fbin.read(name, 20); fbin.read(reinterpret_cast<char*>(&age), sizeof(int)); // Display the data and close. cout << "The name is: " << name << endl; cout << "The age is: " << age << endl; } fbin.close(); system("PAUSE"); return 0;} // Get integer function// Get an integer from keyboard; return default// value if user enters 0-length string.//int get_int(int default_value) { char s[81]; cin.getline(s, 80); if (strlen(s) == 0) return default_value; return atoi(s);}
0 0
- 实验3 文件操作
- 实验--文件操作
- 十五周实验报告3:学会ASCII文件的操作
- linux实验报告二--文件操作
- C#—文件操作—实验12.3
- 实验报告3:文件管理
- 实验3 Linux文件管理
- 实验3: Linux文件管理
- linux实验报告二--文件操作(续)
- 1109 综合实验:文件操作与字符处理
- 尝试 “实验楼” 目录及文件操作 (2)
- Java文件操作自己做的一些小实验
- 实验3-1 赋值操作符
- 实验3-2 算术操作符
- 《数据结构实验3》--图的遍历操作
- js实验4.(3)DOM元素操作
- jsp实验3.(3)jsp文件上传
- Linux文件管理 (实验3)
- C++程序设计实验安排
- 整理网络各个协议
- 实验1 C++函数
- 点击页面其它地方隐藏该div的思路
- javascript的应用,简单设计切换网页主题的应用
- 实验3 文件操作
- 实验4 类初步
- CSS3的颜色
- windows7下安装centos双系统
- Apache错误日志时时查看
- 实验5 运算符重载
- 实验6 继承
- 实验7 多态与模板
- 等价二叉树