0

我不是 C++ 开发人员,但我当前的项目正在更新旧的 C++ 应用程序。

在整个应用程序中,我看到带有两个参数的附加语句..

strTemp.append( cDollars, len );

我正在尝试了解 C++ 语言以及它是如何在这个遗留应用程序中实现的。

我被困在附加功能上。

我可以让它与三个参数一起工作..

#include <iostream>
#include <string>

using namespace std;

int main(){

   string msg = "Hi There!";
   string msg2;

   msg2.append(msg,0, 2);

   cout << msg2;
   cout << "\n";
   system("pause");
   return 0;
}

这返回...

Hi
Press any key to continue . . .

我可以让 append 使用单个参数..

#include <iostream>
#include <string>

using namespace std;

int main(){

   string msg = "Hi There!";
   string msg2;

   msg2.append(msg);

   cout << msg2;
   cout << "\n";
   system("pause");
   return 0;
}

这返回...

Hi There!
Press any key to continue . . .

问题是我不能让它与两个参数一起工作......

#include <iostream>
#include <string>

using namespace std;

int main(){

   string msg = "Hi There!";
   string msg2;

   msg2.append(msg, 1);

   cout << msg2;
   cout << "\n";
   system("pause");
   return 0;
}

--------------------Configuration: Program - Win32 Debug--------------------
Compiling...
Program.cpp
C:\USERS\E1009028\DOCUMENTS\VISUAL STUDIO 6 PROJECTS\SCRATCH\Program\Program.cpp(11) : error C2664: 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &__thiscall std::basic_string<char,struct std::char_traits<c
har>,class std::allocator<char> >::append(const char *,unsigned int)' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'
        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Error executing cl.exe.

Program.exe - 1 error(s), 0 warning(s)

这是 Visual Studio 6(我提到过旧应用程序吗?)。

谁能告诉我我错过了什么?

谢谢,

4

0 回答 0