Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ std::ifstream::read忽略新行字节_C++ - Fatal编程技术网

C++ std::ifstream::read忽略新行字节

C++ std::ifstream::read忽略新行字节,c++,C++,我试图将整个文件读入缓冲区,但由于某些原因,新行字节('\n')被忽略。你知道为什么吗 std::ifstream fin( p_FilePath.c_str( ), std::ifstream::binary ); if( !fin.is_open( ) ) { return false; } fin.seekg( 0, std::ios::end ); int FileSize = fin.tellg( ); fin.seekg( 0, std::ios::beg ); cha

我试图将整个文件读入缓冲区,但由于某些原因,新行字节('\n')被忽略。你知道为什么吗

std::ifstream fin( p_FilePath.c_str( ), std::ifstream::binary );

if( !fin.is_open( ) )
{
    return false;
}

fin.seekg( 0, std::ios::end );
int FileSize = fin.tellg( );
fin.seekg( 0, std::ios::beg );

char * pData = new char[ FileSize ];
fin.read( pData, FileSize );

默认情况下,新行字符
\n
是流插入的分隔符。您如何知道它们被忽略?我正在调试数组,可以清楚地看到在没有新行字节的情况下,下一行是如何在最后一行之后立即开始的。您使用的是Mac吗?Mac上文本的行分隔符是
'\r'
,如果您不使用
std::ifstream::binary
,则标准库会将其转换为
'\n'
。不,windows。正在检查\r\n已修复它。VisualStudio的调试器似乎忽略了新行字节