前言

我现在学习文件的输入与输出,写下此篇博客充当学习笔记

问题回顾

英文电影中参演人员名单一般以某种方式进行排版显示。给定一个未排版的文件listin.txt,该文件中每行参演人员名单由冒号ldquo:rdquo分隔成前后两部分,但格式杂乱无章,单词(由除空格和水平制表符之外的其它字符构成)之间可能有多个空格或水平制表符分隔。编写程序,要求将其按如下排版规则排版输出到另一个文件listout.txt中:

1.从标准输入整数,作为排版后所有各行冒号在一行中的固定位置,输入的整数肯定大于排版后所有各行冒号前的字符个数,位置从1开始计数;

2.冒号左边的单词串以行头为基准左对齐,左边的最后一个单词与冒号之间以空格填充;冒号右边的单词串以冒号基准左对齐,最后一个单词后只有回车换行符,不再有其它字符;

3.冒号左右两边的单词间都只有一个空格分隔,并且要求冒号两边至少各有一个空格。

假设输入文件中每行字符个数不超过100。

【输入形式】

待排版的参演人员名单从当前目录下的listin.txt文件中读入,表示冒号位置的整数从标准输入读入。

【输出形式】

排版后的参演人员名单输出到当前目录下的listout.txt中。

【输入样例】

假设文件listin.txt内容为:

Digital Intermediate by : EFILM

Supervising Digital Colorist : STEVEN J. SCOTT

Second Colorist :ANDREW FRANCIS

Digital Intermediate Producer:LOAN PHAN

Digital Intermediate Editor: DEVON MILLER

表示冒号固定位置的整数为:

40

【输出样例】

文件listout.txt中的内容应为:

【样例说明】

输入的文件listin.txt中有五行参演人员名单,要求排版后冒号位于第40个字符的位置,按照上述排版规则输出到文件listout.txt中。

代码实现

#include<iostream>
#include<fstream>//支持磁盘文件输入和输出
#include<iomanip>//控制输出格式
#include<string>
using namespace std;
int main(){int location;cin >> location;//设置冒号固定的位置ifstream infile("listin.txt");ofstream outfile("listout.txt");string str;while (getline(infile,str))//读取文件中的一行,设置为按行读取{bool flag = true;//判断是在“:”前还是之后string ocu, name;//分别表示职位和姓名for (int i = 0; i < str.length();i++){if(str[i]==':'){flag = false;continue;}if (flag == true){if(str[i]!=' '&&str[i]!='\t'){//注意题目中有说制表符ocu += str[i];if(str[i+1]==' '||str[i+1]=='\t')ocu += ' ';}}else{if(str[i]!=' '&&str[i]!='\t'){name += str[i];if(str[i+1]==' '||str[i+1]=='\t')name += ' ';}}}outfile << setw(location - 1) << left << ocu << ':' << ' ' << name<<'\n';//输出到outfile文件中去,设置location-1个宽度,":"的位置自然就是location的位置了,"left"表示左对齐,头文件为iomanip}return 0;
}

可以一步步调试看看运行过程

文件排版(文本文件读写)相关推荐

  1. c语言 如何创建txt文件,C++文本文件读写操作详解

    前面章节中,已经给大家介绍了文件流对象如何调用 open() 方法打开文件,并且在读写(又称 I/O )文件操作结束后,应调用 close() 方法关闭先前打开的文件.那么,如何实现对文件内容的读写呢 ...

  2. 作业:文件排版(文本文件读写)

    [问题描述] 英文电影中参演人员名单一般以某种方式进行排版显示.给定一个未排版的文件listin.txt,该文件中每行参演人员名单由冒号ldquo:rdquo分隔成前后两部分,但格式杂乱无章,单词(由 ...

  3. python读写文件函数_Python读写文件

    转载自:http://blog.csdn.net/adupt/article/details/4435615 1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用 ...

  4. c语言生成随机坐标,C语言 文件的随机读写详解及示例代码

    前面介绍的文件读写函数都是顺序读写,即读写文件只能从头开始,依次读写各个数据.但在实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置指针,再进行读写.这种读写方式称为随机读 ...

  5. python读取数据文件-python多种读写excel等数据文件的方式(收藏篇)

    前言: python处理数据文件的途径有很多种,可以操作的文件类型主要包括文本文件(csv.txt.json等).excel文件.数据库文件.api等其他数据文件.下面小编整理下python到底有哪些 ...

  6. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 追加键值对数据 | 更新键值对数据 )

    文章目录 一.追加键值对数据 二.更新键值对数据 三.完整代码示例 一.追加键值对数据 在上一篇博客 [C 语言]文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取 ...

  7. c语言二fseek从文件头移动_编程C语言文件的随机读写

    实现随机读写的关键是要按要求移动位置指针,这称为文件的定位. 文件定位 移动文件内部位置指针的函数主要有两个,即rewind()和fseek().rewind函数前面已多次使用过,其调用形式为:    ...

  8. Python实训day03pm【列表生成式、非文本文件的读写与复制、文本文件读写练习】

    Python实训-15天-博客汇总表 目录 1.列表生成式 2.列表的嵌套 2.1.习题1 2.2.习题2 3.非文本文件的读写 3.1.读取文件的大小 3.2.复制文件 4.课堂练习 列表生成式 非 ...

  9. python csv读写方法_python中csv文件的若干读写方法小结

    如下所示: //用普通文本文件方式打开和操作 with open("'file.csv'") as cf: lines=cf.readlines() ...... //用普通文本方 ...

  10. c语言生成随机的坐标,C语言文件的随机读写

    前面介绍的文件读写函数都是顺序读写,即读写文件只能从头开始,依次读写各个数据.但在实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置指针,再进行读写.这种读写方式称为随机读 ...

最新文章

  1. Windows下开源缺陷跟踪系统mantis安装指南(续)-
  2. python管道_python中管道用法入门,举个例子
  3. 【原创】C# API 未能创建 SSL/TLS 安全通道 问题解决
  4. shiro整合ehcache
  5. Django套用现成模板,导入css,js,images等文件【转】
  6. Linux uptime 命令详解
  7. JSON | JSON字符串和JSON对象的区别
  8. .NET混淆器 Dotfuscator如何保护应用程序?控制流了解一下!
  9. pytorch保存模型时报错***object has no attribute 'state_dict'
  10. 高可用—Keepalived安装部署使用详解
  11. QT 编译通过但是运行出现程序异常结束或者crashed的问题 在QT creator中最佳解决办法
  12. eclipse的优缺点
  13. 计算机英语论文摘要,★计算机英语论文摘要范文计算机英语论文摘要写(9页)-原创力文档...
  14. net start mysql启动常见问题
  15. 一班洽谈框架细化_细化结构图让文章结构更清晰 邱晓风
  16. 华硕2020年显卡_显卡涨价?2020年12月不溢价电脑装机配置推荐——华硕3070 DUAL雪豹篇...
  17. 【Fuzzy】模糊专家系统(1)
  18. UBUNTU开启CRONTAB日志记录及解决NO MTA INSTALLED, DISCARDING OUTPUT问题
  19. 纽约大学计算机与科学,纽约大学计算机科学专业排名第30(2020年USNEWS美国排名)...
  20. 不得不说,还是这款开源工作流表单设计器较合心意!

热门文章

  1. 2020 CSP - J初赛 题解
  2. 计算机培训结业典礼主持词,培训结业典礼主持词范文(一)
  3. c语言程序 输入一个四位数,用c语言编程:输入一个四位数,求出它的个位、十位、百位、千位...
  4. 如何玩转抖音电商-基础篇
  5. 一圆形游泳池如图所示,现在需在其周围建一圆形过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。过道宽度为3米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。
  6. excel表格生成图片的方式
  7. Python中可迭代对象是什么?
  8. JavaScript:函数的可选参数
  9. Vue文字走马灯(文字轮播)组件
  10. 领英营销—领英外贸开发客户的方法细节