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