返回信息流我是这学期学的C++,暑假练习一些题目,最近的一道题让我想到了好些问题,希望各位学长学姐或同级大牛们能帮忙看看。
题目是这样的:将一个文件中所有大写字母转换成小写字母,并存储到另一个文件中。
有这么几个问题吧:
1.在读取文件中的字符时,如果我希望连同空格也读取出来,应该怎么写?
2.如果我想把文件中的字符读取,并且储存到数组里(这个题目中没要求,我自己想的),但是我无法确定文件中究竟有多少字符,所以我在定义数组大小时出现了疑问。如果我把数组定大一些,又怕浪费内存。所以我希望用动态内存来,需要多少就分配多少,可是捏,分配动态内存大小时我又蒙了,不知道如何去定大小,希望大家能教教我。
[ema23]
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #90601同步于 2016/7/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
[问题]想请教几个关于c佳佳的问题
yjh564979139
2016/7/26镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 darkfrost 的大作中提到: 】
: 本来就可以读空格吧?
用string 可以,但是题目还要求把大写转为小写,所以这个过程需要一个个字母的读吧,所以这时就读不了空格了
一般的做法是:打开文件-->判断是否到达文件结尾EOF标志?--->文件没有结束,读取一行,存在数组中(大小为一行的最大值)可以先判断一行的大小,然后分配行大小+1的buffer空间,把对应行的数据放到buffer中--->遍历buffer,判断大小写---> 把buffer数据写入到新文件中--->结束
【 在 Madness 的大作中提到: 】
: 你一个一个byte地读,然后判断是否可以小写,接着写到另一个文件里。建议一个一个地读,不然小心eof没判断对就血崩
谢谢你!可是在一个个读的过程中,我当时是用while(value<<ifile)来进行读取,空格读不出来
【 在 jh1 的大作中提到: 】
: 一般的做法是:打开文件-->判断是否到达文件结尾EOF标志?--->文件没有结束,读取一行,存在数组中(大小为一行的最大值)可以先判断一行的大小,然后分配行大小+1的buffer空间,把对应行的数据放到buffer中--->遍历buffer,判断大小写---> 把buffer数据写入到新文件中--->结束
哇塞,好详细噢。谢谢你!
我没想到可以用判断是否到达文件结尾来读取耶,当时我用的是while(value<<ifile),真的给我一个新思路。难道是用while(ifile!='\0')?但是这样的话还是得逐个字母去读取呀,一下子读取一行的话我想知道怎么实现?[em17]
[ema13]
http://www.cnblogs.com/kissazi2/archive/2012/10/29/2744153.html
【 在 yjh564979139 的大作中提到: 】
: 哇塞,好详细噢。谢谢你!
: 我没想到可以用判断是否到达文件结尾来读取耶,当时我用的是while(value<<ifile),真的给我一个新思路。难道是用while(ifile!='\0')?但是这样的话还是得逐个字母去读取呀,一下子读取一行的话我想知道怎么实现?
: