首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C将一个字符添加到缓冲区

C将一个字符添加到缓冲区
EN

Stack Overflow用户
提问于 2013-05-26 03:12:39
回答 2查看 9.4K关注 0票数 1

我想问一下如何在缓冲区中添加一个字符。例如:

代码语言:javascript
复制
char buffer[50];
char one_symbol;

如何在buffer中添加one_symbol?我不知道当时的缓冲区有多长,所以我不能只写,例如buffer[5] = one_symbol;

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-26 03:18:42

您需要做一些事情来跟踪缓冲区中数据的长度。

关于如何做到这一点,您有几个选择。字符串将数据存储在缓冲区中(一个NUL字节),以指示数据结束的位置。另一种可能是将长度存储在外部:

代码语言:javascript
复制
typedef struct { 
    char data[50];
    size_t len;
} buffer;

当您想要允许本身可能包含NUL字节的数据时,后者尤其可取。如果你不想你的缓冲区大小固定在50,你可以更进一步:

代码语言:javascript
复制
typedef struct { 
    size_t allocated;
    size_t in_use;
    char data[];
};

注意,这使用了一个灵活的数组成员,该成员是在C99中添加的,因此一些较旧的编译器不支持它。

票数 1
EN

Stack Overflow用户

发布于 2013-05-26 03:16:16

跟踪或记录当前缓冲区的大小。你可以通过为它添加一个新的变量来实现。

类似于:

代码语言:javascript
复制
char buffer[50];
size_t current_size = 0;  /* Buffer is of size zero from the size */

/* ... */

/* Add one character to the buffer */
buffer[current_size++] = 'a';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16753034

复制
相关文章

相似问题

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