BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #90601同步于 2016/7/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

[问题]想请教几个关于c佳佳的问题

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