我不是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 . . .
我可以用一个参数来附加工作..
#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(我是否提到了遗留应用程序?)。
谁能告诉我我失踪了什么?
谢谢,