📄 11-8.txt
字号:
/* 范例:11-8 */
#include <fstream.h>
void main()
{
fstream io_file; // #1.1 只定义变量
char ch;
int start_pos=0; // 开始写入字符串位置
int count=0;
io_file.open("out.txt",ios_base::in|ios_base::out); // #1.2
if(io_file.fail()) // #2 打开文件失败时,fail()==true
{
cerr << "文件打开失败!\nPress any key to Exit...";
getchar();
exit(1);
}
if((io_file.peek())==EOF) // #3 无文件的文件(仅EOF字符)
{
cerr << "文件内无文件!\n";
}
else
{
cout << "文件内源文件如下\n====================\n";
cout << io_file.rdbuf(); // 输出 rdbuf()
count = io_file.tellg(); // #4 取得目前位置
cout << "\n====================\n";
cout << "共 " << count << " 字符\n";
cout << "您要从哪个位置插入字符串?(1-" << count+1 << ")";
cin >> start_pos;
start_pos--; // 由0开始,因此输入值减一
if((start_pos <= count) && (start_pos >=0))
io_file.seekp(start_pos); // #5 移到指定位置
else
io_file.seekp(0);
while(cin.get() != '\n') // 清字符(含'\n')
{
}
}
cout << "输入字符串,此字符串会被插入指定位置"
<< "(覆盖,不清除源文件!)\n";
while((ch=cin.get()) != '\n') // 输入非'\n'字符,则写入io_file
{
io_file << ch;
}
io_file.seekg(0); // #6 字符指针指到头(0)
cout << "全部字符串为:\n" << io_file.rdbuf() << "\n";
count = io_file.tellg(); // 取得总字数
cout << "请输入要输出最后几个字符?(1-" << count << ") ";
cin >> start_pos;
// 输入合理值时,倒退指定格数输出
if((start_pos>=0)||(start_pos<=count))
{
io_file.seekg(count-start_pos);
cerr << io_file.rdbuf();
}
io_file.close();
getchar();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -