0

我在从标准输入读取二进制数据时遇到问题。

当我输入两个新行时,我的应用程序将分隔符作为“2”的双换行符,它将停止通过标准输入读取并将内容保存到字符缓冲区中。在按两个输入之前,我能够读取总字节数而不会丢失,但是我们遇到\n\r CR+LF 的数据被修改为\n。

我正在阅读基于 Windows 的文件 teraterm,而我的硬件是 Linux,所以我遇到了这个问题,在我尝试过的代码级别

fgetc(stdin), getc(stdin)
freopen(stdin,"rb",1); 

fread(buff,1,bufsize,stdin)

但并非所有功能都在读取和修改回车。所以请任何人帮助我解决这个问题。

4

1 回答 1

2

听起来您正在从管道中读取二进制数据。我建议您改用系统调用,从文件描述符read中读取。STDIN_FILENO

于 2012-12-14T11:52:52.777 回答