-2

我正在尝试memcpy()从 acharArray到整数变量。复制已完成,但在尝试打印复制的值时,会打印一些垃圾。按照我的代码。

填充有什么问题吗?

#include <iostream>
#include "string.h"

using namespace std;

int main()
{
    char *tempChar;
    string inputString;
    int tempInt = 3;

    cout << "enter an integer number" << endl;
    cin >> inputString;
    tempChar = new char[strlen(inputString.c_str())];   
    strcpy(tempChar, inputString.c_str());  
    memcpy(&tempInt, tempChar, sizeof(int));
    cout << endl;
    cout << "tempChar:" << tempChar << endl;
    cout << "tempInt:" << tempInt << endl;

    return 0;
}
4

1 回答 1

3

是的:你搞砸了记忆。

使用:stoi()将 std::string 转换为整数:

int tempInt(stoi(inputString));

完整示例:

#include <cstdlib>
#include <iostream>
#include <string>

int main() {

   std::string tmpString;
   std::cin >> tmpString;

   int const tmpInt(stoi(tmpString));

   std::cout << tmpInt << std::endl;

  return 0;
}
于 2012-12-26T08:08:09.650 回答