我有一个似乎以字节或八位字节为单位的输入 c 字符串。当我打印它时
printf("this is string[%s]\n", inputCstr);
Run Code Online (Sandbox Code Playgroud)
它不会打印整个内容。所以我试着循环它
for (int i=0; i<len; i++) {
printf("inputCstr[%d] = %c", i, inputCstr[i]);
}
Run Code Online (Sandbox Code Playgroud)
这会遍历整个字符串,但这实际上跳过了一些索引。例如,如果字符串是“abcdefg”,它会给出类似
inputCstr[0] = a
inputCstr[2] = c
inputCstr[5] = f
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
那是因为字节数组中存在由控制台专门解释的控制字符。
在您的情况下,您可能遇到过例如\r或类似的情况,将光标移动到第一列,下一行覆盖上一行。
你可以试试:
for (int i=0; i<len; i++) {
printf("inputCstr[%d] = %02X\n", i, (unsigned char)inputCstr[i]);
}
Run Code Online (Sandbox Code Playgroud)
并查看真正的代码。
| 归档时间: |
|
| 查看次数: |
5918 次 |
| 最近记录: |