【问题标题】:Char "Expression Must Have A Class Type"Char "表达式必须有一个类类型"
【发布时间】:2013-07-19 07:12:40
【问题描述】:

我正在尝试将下面创建的pszOutBuffer 转换为const char * 因此,为此我尝试使用sprintf 创建一个名为bufferchar,然后最终获得bufferc_str()。但是buffer 正在抛出错误“表达式必须具有类类型”

if( !WinHttpReadData( hRequest, (LPVOID)pszOutBuffer,  
    dwSize, &dwDownloaded ) )
    printf( "Error %u in WinHttpReadData.\n", GetLastError( ) );
 else
    printf( "%s", pszOutBuffer );
    char buffer [4096];
    sprintf(buffer,"%s",pszOutBuffer);
    returnval = buffer.c_str();

【问题讨论】:

  • pszOutBuffer原来是什么?

标签: c++ arrays char constants winhttp


【解决方案1】:

几个问题。一,您的 else 缺少大括号,二您试图在本机类型(char 数组)上使用 c_str 成员函数。

我不确定你要做什么(可能使用std::string,但使用sprintf 效果不佳)但如果你想使用std::string,那么你应该使用std::stringstream 来模拟sprintf 正在做什么,或者只是用它的一个构造函数来构造它。

【讨论】:

    猜你喜欢
    • 2011-09-26
    • 1970-01-01
    • 2013-12-20
    • 2022-01-23
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多