C ++ Wstring найти ошибку компиляции

Я пытаюсь найти положение символа табуляции в строке.

Однако это не работает для меня.

    int n = wline.find(L"\t");

n равно -1, хотя я точно знаю, что в строке wstring есть символ табуляции.

Кто-нибудь видит мою ошибку? Я думал, что, возможно, L «\ t» может быть неправильным, но когда я удалил L, он больше не будет компилироваться.

Редактировать: я публикую весь код сейчас, возможно, проблема в другом месте:

void clsCharacterTranslations::LoadSerializedCharacters(string file)
{

FILE* inFile =  fopen(file.c_str(), "rb");

wchar_t signature[2];
fread(signature, sizeof(wchar_t), 1, inFile);

wstring wline;

while (GetLineW(inFile, wline))
{
udtCharacterTranslation st;

int b = 0;
int n = wline.find(L"\t");
wstring ws1 = wline.substr(0,n-b);

b = n+1;
n = wline.find(L"\t",b);
wstring ws2 = wline.substr(b,n-b);

st.Text = ws1;
st.Translation = ws1;

m_content.push_back(st);
}

fclose(inFile);

}

bool GetLineW(FILE *inFile, wstring &result)
{
wchar_t data[2]={0,0};

result = L"";
do{
fread(data, sizeof(wchar_t), 1, inFile);

if (data[0]>=L' ')
result += data;

if (data[0]==0x0A)
break;
}while(!feof(inFile));

if (result.size()>0)
return true;
else
return false;
}

Я читаю 2 первых символа в начале пустоты, потому что текстовый файл в формате Windows «Unicode».

Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]