我在 Hackerrank 的编码问题的预完成部分中发现了上述类型的代码。我想知道什么 \n
会做?它有什么区别吗?
最佳答案
读一些好的C reference网站,也许还有 C11 标准 n1570可能 Modern C .
scanf(3) 的文档解释了 \n
的情况在格式控制字符串中。它像空格一样处理
并匹配输入流中的一系列空格字符(例如 ' '
或 '\t'
或 '\n'
)。
如果您明确想解析行,您可以使用一些解析器生成器,如 GNU bison和/或先使用 fgets(3)或 getline(3)及以后 sscanf(3) .
不要忘记处理错误情况。见 errno(3) .考虑使用 EBNF 记录文档表示程序的有效输入。
研究现有开源程序的源代码,包括GNU bash或 GNU make .比 2020 年要注意 UTF-8应该在任何地方使用(那么您可能想要使用 libunistring,您可以研究和改进其源代码,因为它是 free software )。
如果您使用 Linux,请考虑使用 gdb(1)或 ltrace(1)了解您的程序的行为。当然,请阅读 C 编译器(可能是 GCC )和调试器(可能是 GDB )的文档。
关于c - 扫描两个整数(如 scanf ("%d\n %d")时使用\n 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64438340/