能否用fgets将非可打印字符读入给定的char*中(似乎不行)?如果不能,请问有什么替代方法可以从流中将最大数量的输入字符读入char*中?
编辑 (针对我的具体情况)
我有一个编码器,它在stdout上打印“Le\D7”,然后通过管道传输到解码器,解码器使用以下代码从其stdin中获取:
if( fgets( inputChars, MAX_BYTES_IN, stdin ) == NULL )
{
fprintf( stderr, "Trouble getting input\n" );
return 0;
}
while( inputChars[crntChar] != '\0' && inputChars[crntChar] != '\n' )
{
printf( "Value %d: %d\n", crntChar, inputChars[crntChar]);
crntChar++;
}
这将导致:
Value 0: 76
Value 1: 101
Value 2: -41
使用fgetc具有相同的结果。
FILE *
中将值198读入到someChar
中,那么你实际上已经_读取_了该字符。 - Aniket Inge