我有一个程序从stdin
读取数据。该数据是一个字节序列。如果有一个字节描述其中的新行(十六进制:0x0A),scanf
将停止读取。
我可以屏蔽这个字节,以便scanf
继续读取整个序列吗?
由scanf
写入的内存必须包含换行符。
答案 0 :(得分:3)
如果没有看到您的代码,我无法做出准确的推荐。但如果您的目标是“按原样”输入,我建议read()
替代scanf()
。对于遇到完全相反问题的人,请参阅此question。
答案 1 :(得分:0)
scanf("%[^`]s", str);
你可以使用这样的东西。 `\ n 现在将是终止字符序列。
您可以使用任何其他字符或甚至一组字符替换`,输入将以该字符结尾,后跟 \ n 。