首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fgets()不响应PuTTY命令

fgets()不响应PuTTY命令
EN

Stack Overflow用户
提问于 2018-06-15 23:43:22
回答 1查看 150关注 0票数 0

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

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

代码的相关部分很简单:

代码语言:javascript
复制
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)块中看到了printf()语句的输出。

我读到过PuTTY有时只会发送回车符(\r),这在fgets()中是行不通的,但我选中了“在每个CR中隐含LF”设置:

PuTTY中是否有我遗漏的设置?或者是我的代码有问题,因为某些原因,导致了PuTTY的错误行为?

任何建议/想法,我们都非常感谢!

-Sean

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

EN

回答 1

Stack Overflow用户

发布于 2018-06-16 00:58:39

当按Enter时,PuTTY看起来不会发送换行符。它只发送一个回车。将Ctrl+J附加到行尾可以完成工作,但这不是一个很好的解决方案。多亏了尤金·史。故障排除技术。

正如Clifford所指出的,这个问题并不是一个真正的SO问题。我已经投票决定关闭它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50878876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档