强制scanf使用换行符

时间:2011-01-18 09:53:55

标签: c newline scanf

我有一个程序从stdin读取数据。该数据是一个字节序列。如果有一个字节描述其中的新行(十六进制:0x0A),scanf将停止读取。

我可以屏蔽这个字节,以便scanf继续读取整个序列吗?

scanf写入的内存必须包含换行符。

2 个答案:

答案 0 :(得分:3)

如果没有看到您的代码,我无法做出准确的推荐。但如果您的目标是“按原样”输入,我建议read()替代scanf()。对于遇到完全相反问题的人,请参阅此question

答案 1 :(得分:0)

scanf("%[^`]s", str);

你可以使用这样的东西。 `\ n 现在将是终止字符序列。
您可以使用任何其他字符或甚至一组字符替换`,输入将以该字符结尾,后跟 \ n