C 中的几个函数确保将字符写入流,例如:
int fputc ( int character, FILE * stream );
int putchar ( int character );
int putc ( int character, FILE * stream );
...
我的问题很简单:是否有任何函数可以将字符写入char*
? (回调(int character, char * stream)
)
更新:更多地解释我的问题我正在使用 lex/yacc 编译解决方案。
input() 函数返回流中的下一个字符。我想针对指定条件将此函数返回的整个流存储到一个变量中。
由于指针运算是 C 语言的本质,因此没有这样的函数。要将字符放入 stream
指向的内存中并推进它,您可以这样做:
*stream++ = character;
在下一个序列点 stream
将指向新的、仍未写入的字符。
当然,请确保您不会将 stream
推进到其分配区域的边界之外。为防止这种情况发生,您可以做一个简单的计算:
if (stream - base > BUFFER_SIZE) /* stop */
base
将是一个指向分配区域开始的指针,stream
的初始值。
我是一名优秀的程序员,十分优秀!