gpt4 book ai didi

c - fgets() 不响应 PuTTY 命令

转载 作者:行者123 更新时间:2023-11-30 16:30:52 29 4
gpt4 key购买 nike

我在使用 PuTTY 和 fgets() 与嵌入式项目交互时遇到一些问题。我要求用户在 PuTTY 终端中输入,并根据命令运行寄存器读/写。

我认为问题出在 PuTTY 上,因为代码适用于 Tera Term(我想使用 PuTTY,这样我就可以使用本地行编辑功能)。

相关代码部分很简单:

int main(void) {
bool connected = false;
bool quit = false;
char strcom[100];
/* other variable declarations */

connected = device_good(); // read version register, if correct, return true

if (connected) {
printf("Connected to LAN8770 device...\r\n");
} else {
quit = true;
}

while (!quit) {
printf(">> ");
fgets(strcom, sizeof(strcom), stdin);

/* rest of code and input processing */
}
}

调试时,我发现代码永远不会超出 fgets() 调用。不过,我知道 PuTTY 可以从处理器接收信息,因为我确实看到了 if (connected) block 中 printf() 语句的输出。

我读到 PuTTY 有时只会发送回车符 (\r),这不适用于 fgets(),但我有“隐式”选中每个 CR 中的 LF”设置:

PuTTY Terminal Settings

PuTTY 中是否有我缺少的设置?或者是我的代码存在问题,由于某种原因导致 PuTTY 出现异常行为?

如有任何建议/想法,我们将不胜感激!

-肖恩

编辑:请注意“每个 LF 中的隐式 CR”选项似乎也不起作用。

最佳答案

按下 Enter 键后,PuTTY 似乎不会发送换行符。它只发送一个回车符。将 Ctrl+J 附加到行尾即可完成工作,但这不是一个很好的解决方案。感谢尤金·史。了解故障排除技术。

正如克利福德指出的那样,这个问题并不是一个真正的问题。我已投票决定关闭它。

关于c - fgets() 不响应 PuTTY 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50878876/

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