首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何输入/读取不可打印的字符

如何输入/读取不可打印的字符
EN

Stack Overflow用户
提问于 2013-06-06 03:16:57
回答 1查看 604关注 0票数 0

下面是我的代码:

代码语言:javascript
复制
#include <string.h>
#include <stdio.h>

int main( int argc, char** argv)
{
        static char tmpBuf[ 4 ];
        long idx;
        unsigned int cks;
        int bufLen = strlen(argv[1]);

        for ( idx = 0, cks = 0; idx < bufLen; idx++) {
            unsigned char c = argv[1][idx];
            printf("Char=%c|", c);
            cks += c;
        }
        sprintf( tmpBuf, "%03d", (unsigned int)( cks % 256 ) );
        printf( "\n%s\n", tmpBuf ); 

        return 0;
}

基本上,它汇总了所有可能包含不可打印字符的字符。在我的测试中:

代码语言:javascript
复制
>./a.out  "\1"
Char=\|Char=1|
141

您可以看到,程序将"\1“解释为两个单独的字符,而不是转义的一个字符。

如何让代码转义为不可打印的字符?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-06 03:23:34

您希望告诉shell正确地解释转义序列。如果您使用的是Bash:

代码语言:javascript
复制
$ ./a.out $'\1'
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16948029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档