我在Embarcadero RAD Studio 10.3里使用fopen、strcpy等命令,盡管也在檔案開始也包括了stdio.h,string.s
#include <stdio.h>
#include <string.h>
如果直接使用fopen("aaaa.txt","r")和strcpy(tmpstr20,"12345"),則可以編譯通過;
而如果使用變數來表示,如fin=fopen(OpenDialog1->Files->Strings[i].c_str() ,"r");
strcpy(tmpstr20, OpenDialog1->Files->Strings[i].c_str());
則編譯報錯:
[bcc32c Error] Unit1.cpp(45): no matching function for call to 'fopen'
[bcc32c Error] Unit1.cpp(46): no matching function for call to 'strcpy'
這種現象在bcb6.0里沒有出現過,而在更高級的10.3了出現了,請高人幫幫我,是我安裝有問題?還是有設定我沒有搞懂?問題出在哪里?
先謝謝啦!!!
uj5u.com熱心網友回復:
從2009以后的版本中,C++Builder默認的字串型別由AnsiString改為UnicodeString,比如Edit1->Text,OpenDialog1->Files->Strings[i]都是,UnicodeString::c_str()的型別是wchar_t *型別,不是char *型別,所以要么用AnsiString(Edit1->Text).c_str(),要么用fopen函式的寬字符版本,可能是wfopen函式。uj5u.com熱心網友回復:
這里有C++Builder寬字符(串)的資料:http://www.cppfans.com/cbknowledge/skills/strings/
uj5u.com熱心網友回復:
strcpy寬字符版本可能是wcscpy,wide char string copy轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/208752.html
標籤:基礎類
上一篇:BCB使用VC的DLL,implib的-f引數是什么意思?
下一篇:關于函式指標與類成員做默認值
