wofstreamを使用していくつかの文字列を複数のファイルに出力する必要があるforループ(下記)があります。残念ながら、ファイルを作成しますが、文字列をファイルに出力しません。ファイルは常に空です。私は運がない、似たような質問をたくさん見てきました。どんな助けでも大歓迎です。私はUWPアプリケーションを書くためにVisual Studio 2015を使っているWindows 10マシン上にいる。wofstreamは空のファイルのみを作成します。
for (size_t k=0;k < vctSchedulesToReturn.size();k++)
{
auto platformPath = Windows::Storage::ApplicationData::Current->RoamingFolder->Path;
std::wstring wstrplatformPath = platformPath->Data();
std::wstring wstrPlatformPathAndFilename = wstrplatformPath + L"\\" + availabilityData.month + L"_" + std::to_wstring(availabilityData.year) + L"_" + std::to_wstring(k) + L"_" + L"AlertScheduleOut.csv";
std::string convertedPlatformPathandFilename(wstrPlatformPathAndFilename.begin(), wstrPlatformPathAndFilename.end());
std::wofstream outFile(convertedPlatformPathandFilename);
outFile.open(convertedPlatformPathandFilename);
std::vector<std::pair<wstring, wstring>>::iterator pairItr;
std::wstring strScheduleOutputString = L"";
for (pairItr = vctSchedulesToReturn[k].second.begin(); pairItr!=vctSchedulesToReturn[k].second.end(); pairItr++)
{
strScheduleOutputString += pairItr->first + L",";
}
strScheduleOutputString += L"\r\n";
for (pairItr = vctSchedulesToReturn[k].second.begin(); pairItr != vctSchedulesToReturn[k].second.end(); pairItr++)
{
strScheduleOutputString += pairItr->second + L",";
}
outFile << strScheduleOutputString;
outFile.flush();
outFile.close();
}
あなたは 'outFile <<" Hello World ";試してみましたか? – tony
別名:なぜあなたは文字列を構築し、 'outFile'に書き込むのではなく' outFile'に文字列を書きますか? – Hurkyl
また、どのような手段でファイルが空であると判断していますか?私はそれが間違って何回か行われたのを見ました。 – Hurkyl