将字符串传递给C ++中的函数

时间:2012-10-14 09:10:56

标签: string c++-cli

我想将一个像“Celcius”这样的字符串传递给我所拥有的函数但是我不断地从函数中向我抛出错误。

System::Console::WriteLine' : none of the 19 overloads could convert all the argument types

我想我只是有一些简单的错误。 有人可以指出我的错误吗?使用MS Visual C ++ 2010

我发布了有问题的代码。其他功能(未发布)工作正常。

void PrintResult( double result, std::string sType );    // Print result and string
                                                         // to the console
//=============================================================================================
//          start of main
//=============================================================================================
void main( void )
{
ConsoleKeyInfo CFM;
// Program Title and Description

ProgramDescription();

// Menu Selection and calls to data retrieval/calculation/result Print
CFM=ChooseFromMenu();
switch(CFM.KeyChar)    //     ************************************************************
    {                                                                                  //*
        case '1' : PrintResult(F2C(GetTemperature()),"Celsius");                       //*
                 break;                                                                //*
                                                                                       //*
        case '2' : PrintResult(C2F(GetTemperature()),"Fahrenheit");                    //*
                 break;                                                                //*
                                                                                       //*
        default : Console::Write("\n\nSwitch : Case !!!FAILURE!!!");                   //*
    }                       //************************************************************

system("pause");

return;
}
//Function
void PrintResult( double result, std::string sType )
{
Console::WriteLine("\n\nThe converted temperature is {0:F2} degrees {1}\n\n",result,sType);

return;
}

1 个答案:

答案 0 :(得分:4)

Console::WriteLine是一个CLI(C ++。NET)函数,您无法将std::string传递给它,您应该使用System::String^来实现此目的。

在本机C ++中,您应该使用:

std::cout << "\n\nThe converted temperature is " << result
    << " degrees " << ' ' << sType << "\n\n";