正在将char类型的数组转换为int变量
Converting array of type char into a int variable
在Codepad:上编译
#include <iostream>
using namespace std;
void main (void)
{
char ch[2];
int value;
cout<<"Enter two integers between 0-9"<<endl;
cin.getline(ch,2);
//testing with char array
//(...)
//how could I do operations like '*', '+', '-', or '/' to the char arrays
}
提供:
第4行:错误:"::main"必须返回"int"由于-W致命错误,编译终止。
例如:
比方说ch[0]='5'
和ch[1]='3'
我需要做什么才能做ch[0]-ch[1]=2并存储到一个int值中
您根本不需要做任何特别的事情。int x = ch[0] - ch[1]
的工作原理与您所期望的完全一样。
我想最初的练习会要求您获得两个不同的整数,每个整数可能超过1个字符。
但是,问题的解决方案是:ch[0]-ch[1]。
为什么它有效?
Ascii字符"0"是字符48。Ascii字符"9"是字符48+9
现在。。。。
'4'-'3'=(48+4(-(48+3(=4-3=1。
您发布的代码存在一些不同的问题。main
需要具有int
的返回类型。
int main() { /* .. */ }
对cin.getline
的调用将只填充您声明的数组中的一个字符,因为函数调用将null终止数组。你需要
char array[3];
cin.getline( array, 3 );
之后,如果array[0]
包含"5",array[1]
包含"3",则可以简单地进行
array[0] - array[1]
得到整数结果2。
如果您需要处理[0..9]范围之外的数字,则需要将它们转换为数字表示。这可以使用std::stringtream
或atoi
来完成。
相关文章:
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 是否可以从int转换为enum类类型
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 将 int 数组转换为 std::vector<int*>
- 如何转换 int 变量并附加到常量 wchar_t*
- 类型转换<int>的舍入问题
- 在Objective-C中调用sqlite3数据库时,如何调用和转换int/NSNumber
- 转换 int -> 无符号长 长 是否由标准定义
- 简单的 int 到字符串转换..int to const char* 无效
- 如何将转换 int 除法键入为浮点数
- C++类型转换 int * 到类
- 预期的类型说明符,并且无法在初始化时转换“int*”
- 转换int并将其与char*连接
- 字符串流在转换int型时添加新行
- 转换int为字符串/char c++ /Arduino
- c# P-Invoke:如何转换INT fun(BYTE *bStream, UINT16 *nCount, const
- 类型转换(int**)和int(*)的区别
- 从"int"到"nodeType"的无效转换<int>
- 从无符号int构造对强制转换int的引用