Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ e> 或者\u wfopen()本来可以避免第一次出现问题place@PanagiotisKanavos关于\u tfopen宏的好观点。不幸的是,这些宏仍然源于Unicode支持意味着在ASCII和UCS-2之间做出二进制决策的时代,因此我不确定它们在主_C++_Visual Studio 2010_Unicode_Utf 8_Fread - Fatal编程技术网

C++ e> 或者\u wfopen()本来可以避免第一次出现问题place@PanagiotisKanavos关于\u tfopen宏的好观点。不幸的是,这些宏仍然源于Unicode支持意味着在ASCII和UCS-2之间做出二进制决策的时代,因此我不确定它们在主

C++ e> 或者\u wfopen()本来可以避免第一次出现问题place@PanagiotisKanavos关于\u tfopen宏的好观点。不幸的是,这些宏仍然源于Unicode支持意味着在ASCII和UCS-2之间做出二进制决策的时代,因此我不确定它们在主,c++,visual-studio-2010,unicode,utf-8,fread,C++,Visual Studio 2010,Unicode,Utf 8,Fread,e> 或者\u wfopen()本来可以避免第一次出现问题place@PanagiotisKanavos关于\u tfopen宏的好观点。不幸的是,这些宏仍然源于Unicode支持意味着在ASCII和UCS-2之间做出二进制决策的时代,因此我不确定它们在主要基于UTF-8的代码库中的使用情况。特别是,我不确定它们是否有助于发现这一特定错误,因为UTF-8和ASCII字符串在C@PanagiotisKanavos中具有相同的类型。请解释a)请?虽然C++在C++ 11中得到了CHAR16i和CHA


e> 或者
\u wfopen()
本来可以避免第一次出现问题place@PanagiotisKanavos关于
\u tfopen
宏的好观点。不幸的是,这些宏仍然源于Unicode支持意味着在ASCII和UCS-2之间做出二进制决策的时代,因此我不确定它们在主要基于UTF-8的代码库中的使用情况。特别是,我不确定它们是否有助于发现这一特定错误,因为UTF-8和ASCII字符串在C@PanagiotisKanavos中具有相同的类型。请解释a)请?虽然C++在C++ 11中得到了CHAR16i和CHAR32的T,但是我仍然没有得到它。这样的代码基在遇到非UTF8文本时通常会遇到麻烦。与所有非英语文本文件一样,使用最终用户的本地编码保存。在这种情况下,您不能在环境中强制将所有内容都视为UTF8variable@PanagiotisKanavos我必须阅读sysdatapath.dat文件中类似“C:\Users\cagri.ozcan\Desktop\ç\SysData”的内容。这个文件是手动创建的。(记事本++)
bool TSimTextFileStream::ReadLine  ( mstring * str )
{
        *str = "";
        char c = ' ';
        bool first = true;
        // while ( read ( hFile, &c, 1 ) )
        while ( fread ( &c, 1, 1, hFile ) )
        {
                if (first) first = false;
                #ifdef __linux__
                        if ( c == 13 )
                                continue;
                                else
                        if ( c == 10 )
                                break;
                                else
                                *str += c;
                #else
                         if( c == 13 || c == 10)
                             break;
                         else
                             *str += c;

                #endif
        }
        return !first;
}
mstring GetSysDataDirectory ( )
{
    static mstring sysDataDir = "";
    if ( sysDataDir == "" )
    {
    if (mIsEnvironmentVarExist("SYSDATAPATH"))
    {
      mstring folder = mGetEnvVar("SYSDATAPATH");

      if (folder.size() == 0)
      {
        folder = mGetCurrentDir ( ) + "/SysData";
      }

      sysDataDir = folder;
    }
        else if ( mIsFileExist ( "SysDataPath.dat" ) )
        {
            TSimTextFileStream txtfile;
            txtfile.OpenFileForRead( "SysDataPath.dat" );
            mstring folder;
            if ( txtfile.ReadLine( &folder ) )
            {
                sysDataDir = folder;
            }
            else
            {
                sysDataDir = mGetCurrentDir ( ) + "/SysData";
            }
        }
        else
        {
            sysDataDir = mGetCurrentDir ( ) + "/SysData";
        }
    }

    return sysDataDir;
}
bool TSimTextFileStream::OpenFileForRead(mstring fname)
{
        if (hFile != NULL) CloseFile();

        hFile = fopen(fname.c_str(), "r,ccs=UNICODE");

        if (hFile == NULL) return false; else return true;
}
hFile = fopen(fname.c_str(), "r,ccs=UTF-8");