繁体   English   中英

如何读取多个 integer 和字符串输入的 scanf 直到 EOF?

[英]How to read a scanf for multiple integer and string inputs until EOF?

我需要像那样做 scanf function: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的返回值,看它是否读取了所需数量的输入值,如果返回值不正确则结束程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM