| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3212 人关注过本帖
标题:犯愁:如何将数字字符转换成数字
只看楼主 加入收藏
spider1074
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-17
收藏
 问题点数:0 回复次数:11 
犯愁:如何将数字字符转换成数字
输入一串数字字符,要求将这串数字字符转换成数字输出。
想了半天也想不出来,如何实现字符和数字的转换??
求教下如何实现。。。。。。。。。。
搜索更多相关主题的帖子: 数字 犯愁 字符 
2007-07-04 11:55
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
#include <sstream>
#include <iostream>
using namespace std;

int main(){
string str;
int num;
cin >> str;
istringstream in(str);
in >> num;
}

[此贴子已经被作者于2007-7-4 12:02:38编辑过]


Fight  to win  or  die...
2007-07-04 12:01
spider1074
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-17
收藏
得分:0 
回复:(aipb2007)#include #include...

有些地方看不不懂,想问下<sstream>是不是就是原来的〈strstrea.h>?
还有那个istringstream就是原来的istrstream吧,没办法,我的书都还是以前的那些头文件,所以。。。。。。

2007-07-04 13:16
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 
atoi / atol is the original c function you may want to use.

If I rememberd correct, these two function are not in standard C libray --- i.e., it may not be compatible accross platforms/compliers.

I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-07-04 13:20
spider1074
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-17
收藏
得分:0 
回复:(HJin)atoi / atol is the original c functi...

嗯,谢谢,我查了下,〈stdlib.h>中的atoi和atol函数确实有这功能。
你说的那两个函数不是标准C里面的也没错,好像是标准C++里面的,我用是老版本的C++,所以就想了解下是不是从老版本转过来的。。。。

2007-07-04 13:47
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
收藏
得分:0 
char c='9';
int i=c-48;

Viva,espana!
2007-07-04 21:16
spider1074
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-17
收藏
得分:0 
回复:(zkkpkk)char c=\'9\';int i=c-48;
这种方法好像只适用于单个数字字符,不过不是很感谢。。。。。。
2007-07-05 22:11
spider1074
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-17
收藏
得分:0 

问题已解决,感谢aipb2007和HJin版主,还有zkkpkk。。。
aipb2007的程序不能直接在我这里实现,不过稍微改下便可以了。程序修改之后如下:
#include <strstrea.h>
#include <iostream.h>
void main()
{
char str[80];
int num;
cin >> str;
istringstream in(str);
in >> num;
cout<<num<<endl;
}

2007-07-05 22:18
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
收藏
得分:0 
以下是引用spider1074在2007-7-5 22:11:48的发言:
这种方法好像只适用于单个数字字符,不过不是很感谢。。。。。。

你就是说字符,一串的叫字符串


Viva,espana!
2007-07-05 23:32
璇璇贺贺
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-7-6
收藏
得分:0 

8楼答案还是有些看不懂,
// istringstream in(str);
in >> num;
????
顺便补充一点
2楼代码中的 #include <sstream>
#include <iostream>
using namespace std; 开始有些看不懂。
搜了一下,解释如下,希望与菜鸟同胞们共同学习一下:


<iostream>和<iostream.h>是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,
二者是两个文件,打开文件就会发现,里面的代码是不一样的。

后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,
声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。

因此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。



哈哈

2007-07-06 03:21
快速回复:犯愁:如何将数字字符转换成数字
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015859 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved