数据类型转换

dongcat111 2002-10-04 07:14:00
我有一个存放了ISBN码的文件,数据格式形如0-452265-45-5。
现在要求取出文件中的数据进行运算。取出的数字要求是04、5226。5455。
(计算哈希值)。那么有没有什么快截的方法可以办到?
有两个方法我已经知道:
第一。直接以数据类型输出,然后用算术办法截取数字。
第二,用指针来做。然后把字符转为数字。
请问有没有第三种更快更好的?
...全文
81 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cuttloefish 2002-10-07
  • 打赏
  • 举报
回复
有点看不懂?
如果是存在文件里,敢问这位大侠,你打开文件用的是什么???只要你是用ifstream或者fstream,那么当你将文件名传给ifstream、fstream的constructor或者用open()成员函数打开一个如你说的那种小文件的时候,文件的全部内容就已经保存在buffer中了。以后的所有操作,凡是涉及读取或写入文件,都是从buffer中通过指针来进行。最快的方法依我看就是利用类似strstrambuf的这类东西(用STL中的string效果比较好)作为ifstream或者fstream的buffer进行在内存格式化(比如说去掉“-”),然后设计一个类,并为之重载operator>>(这样可以跳过atoi()),通过operator>>来初始化数据成员。但是这依然是使用指针。从根本上来讲,不管你用什么方式打开一个文件(text or bin,当然,必须和你存进去的时候使用的mode一样),读进内存里并用来进行操作的依然是char*,不会有第二种东西。
建议你好好回顾一下标准I/O流库。给你一个小提示:
ifstream ifs("youfilename", ios::in); //缺省是text mode
cout << ifs.rdbuf() << endl; //如此就可以输出整个文件,可见rdbuf()返回的是一个类似指针的东西
dongcat111 2002-10-07
  • 打赏
  • 举报
回复
Cuttloefish,非常感谢你的建议。虽然我还是不太懂……
我打算把分给你,可是怎么给你呢?
runnersun 2002-10-06
  • 打赏
  • 举报
回复
hehe
pcwl 2002-10-06
  • 打赏
  • 举报
回复
自己做一个简单类:
class Sign
{
public:
void sign(const wchar_t*);//check value and initailize them;
int GetHead(void);//get head part
int GetMid(void); //get mid part
int GetTail(void);//get tail part
private:
int m_iHead;
int m_iMid;
int m_iTail;
};
dongcat111 2002-10-06
  • 打赏
  • 举报
回复
不是很明白,能否说的更详细点?
不怕老实说,我的VC++还是初学者,菜鸟级的那种……
sigh ;p
hanwg 2002-10-06
  • 打赏
  • 举报
回复
将其转换为CString类型,去掉'-'号,然后调用CString的成员函数来取字符串
skyie 2002-10-06
  • 打赏
  • 举报
回复

~⊙ō⊙~(党委书记)
dongcat111 2002-10-06
  • 打赏
  • 举报
回复
这个方法其实就是用指针啊。atoi的参数类型不是char*么?
zhao_as 2002-10-04
  • 打赏
  • 举报
回复
首先读出来
去掉所有的-
用字符串切取函数分别取出
用atoi转化

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧