2个回答
2013-08-03
展开全部
看看下面这段微软提供的示例就明白了!代码如下:#include <stdlib.h>
#include <stdio.h>
void main( void )
{
char *s; double x; int i; long l;
s = " -2309.12E-15"; /* Test of atof */
x = atof( s );
printf( "atof test: ASCII string: %s\tfloat: %e\n", s, x );
s = "7.8912654773d210"; /* Test of atof */
x = atof( s );
printf( "atof test: ASCII string: %s\tfloat: %e\n", s, x );
s = " -9885 pigs"; /* Test of atoi */
i = atoi( s );
printf( "atoi test: ASCII string: %s\t\tinteger: %d\n", s, i );
s = "98854 dollars"; /* Test of atol */
l = atol( s );
printf( "atol test: ASCII string: %s\t\tlong: %ld\n", s, l );
}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////Outputatof test: ASCII string: -2309.12E-15 float: -2.309120e-012atof test: ASCII string: 7.8912654773d210 float: 7.891265e+210atoi test: ASCII string: -9885 pigs integer: -9885atol test: ASCII string: 98854 dollars long: 98854备注:代码来源微软MSDN2008
#include <stdio.h>
void main( void )
{
char *s; double x; int i; long l;
s = " -2309.12E-15"; /* Test of atof */
x = atof( s );
printf( "atof test: ASCII string: %s\tfloat: %e\n", s, x );
s = "7.8912654773d210"; /* Test of atof */
x = atof( s );
printf( "atof test: ASCII string: %s\tfloat: %e\n", s, x );
s = " -9885 pigs"; /* Test of atoi */
i = atoi( s );
printf( "atoi test: ASCII string: %s\t\tinteger: %d\n", s, i );
s = "98854 dollars"; /* Test of atol */
l = atol( s );
printf( "atol test: ASCII string: %s\t\tlong: %ld\n", s, l );
}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////Outputatof test: ASCII string: -2309.12E-15 float: -2.309120e-012atof test: ASCII string: 7.8912654773d210 float: 7.891265e+210atoi test: ASCII string: -9885 pigs integer: -9885atol test: ASCII string: 98854 dollars long: 98854备注:代码来源微软MSDN2008
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-10-15
展开全部
string 是C++ STL定义的类型,atoi是 C 语言的库函数,所以要先转换成 char* 类型才可以用 atoi。
string s;
cin>>s;
int result = atoi( s.c_str() );
(atoi 这个函数比较弱, 只能读一个数字。 真正NB的是 strtol 函数。)
//==============================================
附 atoi 函数说明:
原型: int atoi(const char *nptr);
函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。
string s;
cin>>s;
int result = atoi( s.c_str() );
(atoi 这个函数比较弱, 只能读一个数字。 真正NB的是 strtol 函数。)
//==============================================
附 atoi 函数说明:
原型: int atoi(const char *nptr);
函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询