一.实验目的与要求:
二.实验过程:
(1) 读入指定文本文件的程序,文本文件格式见参考内容;
(2) 用随机函数根据文本文件的记录数量生成一个随机数;
(3) 根据这个随机数,从所读取的记录中找到对应的记录,并输出显示;
三.示例代码:
#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* 韩*
#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);
}
#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);
}