ファイルから読み取った文字を含む char バッファーがあります。この char バッファーを取得し、その中で最初の行末文字を見つける必要があります。
この場合の EOL 文字は \n、\r、\f です。
当初、次のことを行う予定でした。
// let's read into our buffer now...
char * m_pLineBuff;
if(!readCharBuf(m_pLineBuff, bytesToRead)) { report("Could not fill line buffer", RPT_ERROR, __PRETTY_FUNCTION__); }
// setup our newline candidates in an array
int iEOLChars[] = {'\n','\f','\r'};
// find the first instance of a newline character
int iEOLPosition = std::find_first_of(m_pLineBuff, m_pLineBuff+bytesToRead, iEOLChars, iEOLChars+3);
ただし、メソッドに char ポインターを渡すことはできないようstd::find_first_of
です。渡すことができるのは整数のみです。コンパイラが提供する正確なエラーは次のとおりです。
error: invalid conversion from ‘char*’ to ‘int’
char バッファーの開始位置と終了位置を定義したので、これは奇妙に思えますが、EOL 文字の最初の出現を探してそれらを反復処理できなかった理由がわかりません。
これを解決する方法についてアドバイスはありますか?を使用する方法はありますfind_first_of
か、または単に char バッファーの各位置を反復処理し、その場所の char が EOL 文字のいずれかと一致するかどうかを確認する必要があります。
私が言及している「find_first_of」関数はこれです:http://www.cplusplus.com/reference/algorithm/find_first_of/
どんな支援も常に感謝しています。