0

stdin からの読み取り中にバイナリ データに問題があります。

私のアプリケーションでは、2 つの新しい行を入力すると、区切り文字が "2" のように 2 つの改行になっています。標準入力の読み取りが停止し、内容が char バッファーに保存されます。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 に答える