试图检查缓冲区是否在C中为空?

时间:2020-02-23 16:40:13

标签: c buffer

所以我正在尝试使用C检查缓冲区是否为空。 我只是想让它结束,如果“ return_character”方法中的缓冲区为空。 任何帮助深表感谢。显然,在此方法中还需要返回一个char,因为它是在函数头中使用char声明的。

2 个答案:

答案 0 :(得分:0)

如果要检查缓冲区是否不包含任何字符,可以使用string.h中的strlen()函数(确保缓冲区在fread()之后以\ 0终止。

如果要检查malloc是否失败,请将指针与NULL进行比较。 NULL是给指针的特殊值,表示它们指向任何东西。

答案 1 :(得分:0)

char return_character(bufferStruct* buff){
  char a = a;
  // this is where I need the help
…

仅此而已...由于您选择(char)EOF作为文件结束标记(提醒CP / M的Ctrl-Z),并用它填充了缓冲区的其余部分,因此函数主体可以简单地是:

    if (buff->alongBuffer == buff->bufferLength) buffer_refill(buff);
    return buff->buffer[buff->alongBuffer++];