首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >空字符更改输出文件

空字符更改输出文件
EN

Stack Overflow用户
提问于 2017-08-04 15:51:02
回答 1查看 184关注 0票数 1

我有一个功能:

代码语言:javascript
复制
int csv_fwrite2 (FILE *fp, const void *src, size_t src_size, unsigned char quote){
    const unsigned char *csrc = src;

    if (fp == NULL || src == NULL)
        return 0;

    if (fputc(quote, fp) == EOF)
        return EOF;

    while (src_size) {
        if (*csrc == quote) {
            if (fputc(quote, fp) == EOF)
                return EOF;
        }
        if (fputc(*csrc, fp) == EOF)
            return EOF;
        src_size--;
        csrc++;
    }

    if (fputc(quote, fp) == EOF) {
        return EOF;
    }

    return 0;
}

基本上,它接受src中的内容,并将src的内容输出到一个文件(csv格式)中,并且引号字符将是您传递的参数。

例如。

src = ["name", "age", "gender"]; csv_fwrite2 (fp, src, src_size, '"');

在输出文件中,它将包含:"name","age","gender"

如果:

src = ["name", "age", "gender"]; csv_fwrite2 (fp, src, src_size, '|');

然后输出是:

|name|,|age|,|gender|

一切正常,但是,当我输入空字符作为引号时:

csv_fwrite2 (fp, src, src_size, '\0'); `

与其将src的内容作为字符串写入文件,不如将其输出如下:

006e 616d 6500 2c00 6167 6500 2c00 6765

而不是:name,age,gender

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-04 16:01:58

我认为这是您所期望的文件,但是它是作为十六进制转储加载的,而不是作为编辑器中的文本加载的,因为'\0'是一个特殊的字符。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45510966

复制
相关文章

相似问题

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