[問題] 利用fstream寫入unicodestring
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
BCB
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
#include <fstream.h>
問題(Question):
在"日期-小時-分鐘-秒".text中寫入
日期-小時-分鐘-秒,且1秒加1行。
但好像是無法利用fstream寫入Unicodestring
餵入的資料(Input):
預期的正確結果(Expected Output):
同上
錯誤結果(Wrong Output):
[BCC32 Error] Unit2.cpp(30): E2094 'operator<<' not implemented in type
'fstream' for arguments of type 'UnicodeString'
程式碼(Code):(請善用置底文網頁, 記得排版)
void __fastcall TForm2::tmr1Timer(TObject *Sender)
{
if (startsave==true)
{
f1.open(dlgSave1->FileName.c_str(),
ios::in|ios::out|ios::app);
(問題出在這行) f1<<FormatDateTime("yyyy-mm-dd AM/PM hh-mm-ss",
Now())<<"\r\n";
f1.close();
}
}
void __fastcall TForm2::btn2Click(TObject *Sender)
{
startsave=false;
dlgSave1->Filter= "Text (*.txt)|*.txt|All Files|*.*|";
dlgSave1->FileName=FormatDateTime("yyyy-mm-dd AM/PM hh-mm-ss",Now());;
dlgSave1->DefaultExt=".Txt";
dlgSave1->Execute();
f1.open(dlgSave1->FileName.c_str(),ios::out);
f1<<"日期"<<"\r\n";
f1.close();
startsave=true;
}
補充說明(Supplement):
FormatDateTime("yyyy-mm-dd AM/PM hh-mm-ss",Now()) <=是Unicodestring
所以應該是要轉換成其它的類型,才能用fstream再寫入記事本對吧?
如果加FormatDateTime("yyyy-mm-dd AM/PM hh-mm-ss",Now()).c_str() (或w_str())
可以成功執行無錯誤,但會出現輸入的不是日期,而是數字或亂碼....
小弟我新手,不太懂怎麼轉換類型,網路上都寫得看不太懂
不知道有沒有什麼簡單的手法可以處理,感謝回答
--------------------------------------------------------------------------
解答:
使用AnsiString(UnicodeString).c_str()即可解決
為何一定要加.c_str()是因為fstream無法輸入string
所以要先變成C語言形式的字串常數後,才能使用fstream輸入
那為何要先把UnicodeString換成AnsiString 日期才不會變成亂碼
完全不知道...囧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.136.194
※ 編輯: laertes 來自: 220.132.136.194 (12/28 22:44)
→
12/28 23:20, , 1F
12/28 23:20, 1F
→
12/28 23:20, , 2F
12/28 23:20, 2F
→
12/28 23:21, , 3F
12/28 23:21, 3F
→
12/28 23:22, , 4F
12/28 23:22, 4F
→
12/28 23:24, , 5F
12/28 23:24, 5F
→
12/28 23:26, , 6F
12/28 23:26, 6F
→
12/28 23:27, , 7F
12/28 23:27, 7F
→
12/28 23:31, , 8F
12/28 23:31, 8F
※ 編輯: laertes 來自: 220.132.136.194 (12/28 23:37)
→
12/29 10:59, , 9F
12/29 10:59, 9F
→
12/29 11:00, , 10F
12/29 11:00, 10F
→
12/29 11:09, , 11F
12/29 11:09, 11F
→
12/29 11:10, , 12F
12/29 11:10, 12F
→
12/29 11:14, , 13F
12/29 11:14, 13F
→
12/29 11:19, , 14F
12/29 11:19, 14F
→
12/29 11:58, , 15F
12/29 11:58, 15F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章