#include <iostream>
using namespace std;
int main()
{
char myarray[3] = {'0','1','2'};
int i = atoi(myarray);
cout<<i<<endl;
}
这个节目只有12但我希望它是012 ... 还有其他功能可以做这件事吗?
答案 0 :(得分:0)
这有很多问题:
char myarray[3] = {'0','1','2'};
错过了NULL
终结符(因此没有什么能够确定字符串结尾的位置)。从字符串初始化的更简单方法就是:
char myarray[] = "012";
这将为您排序长度,并添加NULL
终止符。
您没有获得前导零,因为您存储转换结果的类型不知道原始输入数据有多长,或者它有多少前导零......它&# 39; s字面上只是一个数字。如果您还要打印多个前导零,可以使用iostream.width()
设置最小宽度,并使用iostream.fill()
设置用于填充的字符,例如
cout.width(3); // At least three chars
cout.fill('0'); // Pad with zeroes
cout << i;
我会质疑为什么你需要能够做到这一点; JuniorCompressor的回答似乎更符合您目前的需求。