示例
| |
在本地与这段代码交互时,由于 scanf("%d", ...); 有一个机制:遇到非数字自动截断,并将数字后面的部分保留在缓冲区中供下一次输入使用,这样如果直接使用 sendline 发送数据的话, fgets 会被跳过(scanf 不会被跳过,因为 %d 会跳过前导空白字符去读取数字)
为了避免这种情况发生,我们可以在发送 scanf 所需的数字后面直接加上要发送给 fgets 的数据,这样一来可以在依次 sendline 中通过两个读入函数
关于缓冲区的更多知识还有待学习www
| |
在本地与这段代码交互时,由于 scanf("%d", ...); 有一个机制:遇到非数字自动截断,并将数字后面的部分保留在缓冲区中供下一次输入使用,这样如果直接使用 sendline 发送数据的话, fgets 会被跳过(scanf 不会被跳过,因为 %d 会跳过前导空白字符去读取数字)
为了避免这种情况发生,我们可以在发送 scanf 所需的数字后面直接加上要发送给 fgets 的数据,这样一来可以在依次 sendline 中通过两个读入函数
关于缓冲区的更多知识还有待学习www