gpt4 book ai didi

c++ - ASCII 字符数组

转载 作者:行者123 更新时间:2023-11-27 23:49:28 25 4
gpt4 key购买 nike

我正在尝试制作一个包含所有 32-255 个 ASCII 字符的数组,但我真的不认为这是我创建的数组?

int main()
{
cout << " ASCII 32 - 255\n";

int col = 1;

for (int asc_char = 32; asc_char < 256; asc_char++)
{
cout << std::setw(6) << asc_char << setw(3) << static_cast<char>(asc_char);

col++;
if (col > 7)
{
col = 1;
}
cout << "\n";

return 0;
}

更新:

这就是我的代码现在的样子。 ASCII 表以数组形式出现,但不是 7 列和 32 行。每个字符前的32、33、34、35、36也没有了。

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
cout << " ASCII 32 - 255\n";

unsigned char myarray[7][32] = {};
int val = 32;
{

for (size_t i = 0; i < 7; i++) {
for (size_t j = 0; j < 32; j++) {
myarray[i][j] = val++;
}
}
}
// for (int asc_char = 32; asc_char < 256; asc_char++)
// cout << std::setw(6) << asc_char << setw(3) << static_cast<char>(asc_char);
for (auto& row : myarray) {
for (auto& col : row) {
std::cout << col << ' ';
}
std::cout << '\n';
}

return 0;
}

最佳答案

引用OP's comment :

How in earth can a make an array of 7 columns and 32 rows and fill it with the content of all 32-255 ASCII chars?

您可以按如下方式进行:

#include <iostream>
#include <array>

int main() {
std::array<std::array<unsigned char,7>,32> myarray;
unsigned char val = 32;
for (auto& row : myarray) {
for (auto& col : row) {
col = val++;
}
}
}

关于输出表格中的内容,你可能想用这个:

for (auto& row : myarray) {
for (auto& col : row) {
std::cout << std::setw(6) << std::right << static_cast<int>(col)
<< std::setw(3) << std::right << static_cast<char>(col);
}
std::cout << std::endl;
}

这是完全可用的 Live Demo


您将从上面获得的输出如下所示:

    32       33  !    34  "    35  #    36  $    37  %    38  &
39 ' 40 ( 41 ) 42 * 43 + 44 , 45 -
46 . 47 / 48 0 49 1 50 2 51 3 52 4
53 5 54 6 55 7 56 8 57 9 58 : 59 ;
60 < 61 = 62 > 63 ? 64 @ 65 A 66 B
67 C 68 D 69 E 70 F 71 G 72 H 73 I
74 J 75 K 76 L 77 M 78 N 79 O 80 P
81 Q 82 R 83 S 84 T 85 U 86 V 87 W
88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^
95 _ 96 ` 97 a 98 b 99 c 100 d 101 e
102 f 103 g 104 h 105 i 106 j 107 k 108 l
109 m 110 n 111 o 112 p 113 q 114 r 115 s
116 t 117 u 118 v 119 w 120 x 121 y 122 z
123 { 124 | 125 } 126 ~ 127 128 � 129 �
130 � 131 � 132 � 133 � 134 � 135 � 136 �
137 � 138 � 139 � 140 � 141 � 142 � 143 �
144 � 145 � 146 � 147 � 148 � 149 � 150 �
151 � 152 � 153 � 154 � 155 � 156 � 157 �
158 � 159 � 160 � 161 � 162 � 163 � 164 �
165 � 166 � 167 � 168 � 169 � 170 � 171 �
172 � 173 � 174 � 175 � 176 � 177 � 178 �
179 � 180 � 181 � 182 � 183 � 184 � 185 �
186 � 187 � 188 � 189 � 190 � 191 � 192 �
193 � 194 � 195 � 196 � 197 � 198 � 199 �
200 � 201 � 202 � 203 � 204 � 205 � 206 �
207 � 208 � 209 � 210 � 211 � 212 � 213 �
214 � 215 � 216 � 217 � 218 � 219 � 220 �
221 � 222 � 223 � 224 � 225 � 226 � 227 �
228 � 229 � 230 � 231 � 232 � 233 � 234 �
235 � 236 � 237 � 238 � 239 � 240 � 241 �
242 � 243 � 244 � 245 � 246 � 247 � 248 �
249 � 250 � 251 � 252 � 253 � 254 � 255 �

请注意打印在终端上的 字符,表示值大于 126。这些取决于选择用于显示的代码页(例如特殊拉丁字符,如 íêüö 等)。

关于c++ - ASCII 字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47621704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com