【发布时间】:2018-01-31 21:04:30
【问题描述】:
所以如果我必须使用fgets() 两次从键盘读取两个不同的输入,我应该指定两个不同的缓冲区还是只重用同一个缓冲区?有什么不同?
使用相同的缓冲区:
char buffer[100];
fgets(buffer, sizeof(buffer), stdin);
fgets(buffer, sizeof(buffer), stdin);
为不同的输入使用不同的缓冲区:
char buffer_x[100];
char buffer_y[100];
fgets(buffer_x , sizeof(buffer_x), stdin);
fgets(buffer_y , sizeof(buffer_y), stdin);
【问题讨论】:
-
在第一个示例中,第二个输入将覆盖第一个输入。这就是区别。
-
如果代码在读取第二个后需要保留第一个的结果,则使用不同的缓冲区。
-
顺便说一句,在使用缓冲区之前检查
fgets()的返回值。