1

我收到错误:'输入字符串的格式不正确'

这段代码,当我在 C# 中使用它时,工作正常,但我自己翻译了它,所以那里可能有错误。(我通常将它用于文本加密,因为它又短又快)

这是我的 C++ 代码:

void encrypt()
{
    string psw = "mystring";
    System::String^ encr;
    int tot;
    int num;
    int lng = psw.size();
    char pswchar[1024];
    strcpy_s(pswchar, psw.c_str());
    System::String^ istr;
    for (int i = 0; i < lng; i++)
    {
        {
            ostringstream ss;
            ss << pswchar[i];
            istr = gcnew System::String(ss.str().c_str());
        }
        num = int::Parse(istr) + 15; // << I get the error here
        tot += num;
    }
    ostringstream convert;
    convert << tot;
    encr = gcnew  System::String(convert.str().c_str());
    File::WriteAllText("C:\myfolder\mypath.txt", encr);
}

这是我的 C# 代码:

void encrypt()
{
    string psw = "mystring";
    string encr;
    char[] pswchar = psw.ToCharArray();
    for (int i = 0; i < pswchar.Length; i++)
    {
        int num = Convert.ToInt32(pswchar[i]) + 15;
        string cvrt = Convert.ToChar(num).ToString();
        encr += cvrt;
    }
}
4

1 回答 1

2

我认为这就是您所要求的……但这有点疯狂:

#include <string>

using namespace System;

std::string encrypt(const std::string& s) {
  std::string r(s);
  for (int i = 0; i < r.size() ; ++i) {
    r[i] += 15; // !!!
  }
  return r;
}

int main(array<System::String ^> ^args)
{
    std::string s = "Hello World";
    System::String^ ss = gcnew String(encrypt(s).c_str());
    Console::WriteLine(ss);
    return 0;
}

输出:

Wt{{~/f~?{s
于 2013-10-01T14:22:36.177 回答