
C语言中可以通过标准输入输出函数和自定义缓冲区管理函数来将字符放入缓冲区。具体方法包括使用标准库函数如fgets、getchar、ungetc,以及手动实现缓冲区管理。最常见和简便的方法是使用标准库函数fgets来读取字符并放入缓冲区。下面将详细介绍其中的方法和实现细节。
一、标准库函数
1、使用fgets函数
fgets是标准C库中的一个函数,用于从指定的输入流读取一行字符,并将其存储在一个缓冲区中。它的原型是:
char *fgets(char *str, int n, FILE *stream);
str是指向字符数组的指针,n是要读取的字符数(包括终止符),stream是输入流。
使用示例
#include <stdio.h>
int main() {
char buffer[100];
printf("Enter a string: ");
if (fgets(buffer, 100, stdin) != NULL) {
printf("You entered: %s", buffer);
}
return 0;
}
在这个例子中,fgets从标准输入中读取最多99个字符(最后一个字符是终止符),并将它们存储在缓冲区buffer中。
2、使用getchar和ungetc函数
getchar函数从标准输入读取一个字符,而ungetc函数则将一个字符重新放回到输入流。通过结合这两个函数,我们可以手动管理缓冲区。
使用示例
#include <stdio.h>
int main() {
char buffer[100];
int i = 0;
int ch;
printf("Enter characters (end with '.'): ");
while ((ch = getchar()) != '.') {
if (i < sizeof(buffer) - 1) {
buffer[i++] = ch;
}
}
buffer[i] = '