c - 如何在 EOF 之前读取多个整数和字符串输入的 scanf?
问题描述
我需要像这样执行 scanf 函数: scanf("%s%d%d%s%d%d%s%d%d", X, &LO, &HI, Y, &LO2, &HI2, Z, &LO3, &HI3)我希望每当用户按 ctrl+D 结束扫描并关闭程序时。
例如:
l 7 9 c 3 8 v 4 ctrl+D //input
--> end of scanning and the end of program.
你能帮我这样做吗?我是编程的初学者..
解决方案
对于 Unix 类型的终端,Ctrl-D 通常是 termios VEOF 字符,并且在终端处于规范输入模式时不会传递到标准输入。在这种情况下,在行首键入 Ctrl-D 字符将scanf
看到文件结束条件,但它需要位于行首,而不是像您的示例中那样位于行的中间。因此,您可能需要在 Ctrl-D 之前键入回车,以便从scanf
早期返回。
您可以检查返回值,scanf
看它是否读取了所需数量的输入值,如果返回值不正确,则结束程序。
推荐阅读
- kubernetes - 如何公开我的部署的端口?
- powershell - 为什么条件语句不能正常工作?
- javascript - 带有辅助函数的 Javascript 递归
- javascript - D3JS 制作一个条形图,其中每行/数据点包含多个时间段
- postgresql - 在本地和 Docker 容器之间的同一端口上处理多个 Postgresql 实例
- python - 未从 URL 获取所有 JSON 数据
- node.js - 尝试使用 Selenium Grid 运行 Microsoft Edge 测试,SessionNotCreatedError
- firebase - 如何转换“未来”
'到'字符串' - docker - 从 WSL2 连接到 docker 容器
- python - df.replace 显示错误而不用 str 格式化 to_replace