gpt4 book ai didi

调用 fgets 导致字符串打印到标准输出

转载 作者:太空宇宙 更新时间:2023-11-04 03:59:19 26 4
gpt4 key购买 nike

void deleteFile( FAT *allotable ) {
/* PRECONDITION: This function expects a FAT structure that is valid.
* POSTCONDITION: A file is flagged as removed from the disk and it will
* be possible to write over it
*/

// Local variables
unsigned char test[9] = { 0 };

// Select file to remove
// TODO: The user will select the file to remove based on the
// listing in listDir
// For testing, we are removing file at location 0 in the entry
fgets( test, NAME_SIZE, stdin );
return;
}

当我运行该函数并输入一个字符串时,我看到该字符串打印回标准输出中。我确信缓冲区有问题,但我似乎无法弄清楚。

最佳答案

当你运行它时,如果你看到:

./program
input<CR>
input
<prompt>

然后您提供的代码不负责这样做。使用一些调试语句或调试器找出回声的来源,因为这不是 fgets 所做的。

如果您看到:

./program
input<CR>
<prompt>

这就是终端的工作原理。它们会在您键入时回显文本,除非您禁用该功能(对输入密码很有用)。

关于调用 fgets 导致字符串打印到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13481767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com