char[]混乱的输出
char[] messy output
我创建了一个将int映射到char的映射。0-25到字母a-z和26-35 0-9。
for(int i = 0; i<26; i++)
{
letters.insert(Match::value_type(i,static_cast<char>(letter + x)));
x++;
}
for(int i = 26; i<36; i++)
{
letter = '0' + a;
letters.insert(Match::value_type(i,letter));
a++;
}
这里i
输入包含数字的pin[]
并查找该值。
std::map<int, char >::const_iterator it1 = letters.find(pin[0]);
std::map<int, char >::const_iterator it2 = letters.find(pin[1]);
std::map<int, char >::const_iterator it3 = letters.find(pin[2]);
std::map<int, char >::const_iterator it4 = letters.find(pin[3]);
char fourth = it4->second;
char third = it3->second;
char second = it2->second;
char first = it1->second;
char combo[] = { first, second, third, fourth};
cout << combo << endl;
一切都很好,但我的cout<< combo
给了我"abcd"我不明白为什么。。。我只想在输出中输入"abcd"我该如何清理它。
您需要null终止您的字符串才能在C样式模式中使用它。因此,这将更改为:
char combo[] = { first, second, third, fourth, ' '};
现在,您将在fourth
之后输出内存中的垃圾,直到找到null
字符为止。
char combo[] = { first, second, third, fourth};
定义一个数组,该数组包含4个字符的序列,但不包含可以打印的以null结尾的字符串。执行cout << combo
时,输出流将此数组视为公共数组
C样式字符串,即它尝试打印所有字符,直到到达' '
。尝试:
char combo[] = { first, second, third, fourth, ' '};
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 在MSDOS编译器上,用大于最大值的值初始化int时输出混乱
- 写入输出文件的星形菱形图案C++变得混乱
- 为什么这个C++程序的输出在cmd中产生了巨大的混乱
- 访问Ximea相机并使用OpenCV设置预定义的分辨率时,由于相机默认分辨率的大小为Mat,因此显示混乱的输出
- C++BEGINNER阶乘程序,输出混乱
- 并行计算--混乱的输出
- c++读取文本文件并输出等级和平均值到另一个文件(输出混乱)
- 当使用spirit以其他方式解析结构时,会导致输出混乱
- c++: Std::cout缓冲区错误?对字符串变量和字符串字面值使用std::cout导致输出混乱
- char[]混乱的输出
- 我想创建一个函数,我可以在其中输入一个字符串,它会输出一个混乱的字符串版本
- 多线程文本输出打印到dos控制台重叠/混乱输出