以下のコードに示すように、スラッシュが1つしかないファイルパスをダブルスラッシュに変換しようとしています。 それは私の最後でstd :: replaceはエラーを返します
#include<algorithm>
std::string file_path;
using std::replace;
while(fgets(fname_buffer,1024,flist))
{
token = strtok(fname_buffer," ,\t");
file_size=atol(token);
token = strtok(NULL, " ,\t");
strncpy((char*)file_fp,token,32);
file_fp[32]='\0';
token = strtok(NULL, "\n");
file_path=token;
replace(file_path.begin(),file_path.end(),'\\',"\\\\");
//file_path.replace(file_path.begin(),file_path.end(),'\\','\\\\');
エラーC2664示すエラー与える:「のstd :: < _Elem、_Traits、_Ax> &のstd ::のbasic_string < _Elem、_Traits、_Ax> ::置き換えをのbasic_stringを(unsigned int型、unsigned int型、constの_Elem *、unsigned int型)」:からパラメータ1を変換することはできません 'のstd :: _ String_iterator < _Elem、_Traits、_Alloc>
使用[この](のhttp:// WWW。 boost.org/doc/libs/1_49_0/doc/html/boost/algorithm/replace_all.html)。 search-replace-repeatアルゴリズムよりもはるかに優れています。 –