简易记事本的程序分为两部分:记事本阅读器和记事本编写器。
记事本阅读器
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
int r; char c;
fstream file;
char fn[15], buf[100];
cout << "请输入记事本文件路径和名称:";
cin >> fn;
file.open(fn, ios::in);
//针对文件后缀为(.txt .h .cpp .pas等)文件
if (!file)
{
cout << "The file you wanted open does NOT exist.";
abort();
}
while (!file.eof())
{
r = 0;
while (!file.eof() && r<10)
{
file.getline(buf, 100);
//读取一行,其中buf的类型必须为ctsring,即char*
//100表示buf能容纳的最多字符数
cout << buf << endl;
r++;
}
cout << "press 'enter' key...";
c = getchar();
//输入设备->内存缓冲区->程序getchar
//键盘输入的字符都存到缓冲区内,一旦键入回车,getchar就进入缓冲区读取字符,一次只返回第一个字符作为getchar函数的值,
//如果有循环或足够多的getchar语句,就会依次读出缓冲区内的所有字符直到'\n'.
}
file.close();
return 0;
}
记事本编写器
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
char fn[15];
string str = "";
cout << "请输入记事本文件路径和名称:";
cin >> fn;
ofstream file(fn, ios::app);
//在每次写之前找到文件尾
if (!file)
return 1;
cout << "请输入内容" << endl;
while (str != "quit")
{
getline(cin, str);
//按行输入
file << str;
file << endl;
}
return 0;
}