C++,文本到 ASCII while 循环错误

标签 c++ encryption

我没有寻求帮助就走到了这一步,但我遇到了一个我似乎无法解决的问题。我喜欢密码学,所以现在我正在学习C++,我想制作程序来加密和解密字符串。我读到最好的方法是将文本转换为 ASCII,然后从那里开始,所以这是我用 C++ 编写的一个简单程序,用于尝试将 char 变量转换为 ASCII:

#include <iostream>
#include <string>
#include <math.h>
using namespace std;

int main()
{
    char strString[1000];
    cout<<"Enter you message:"<<endl;
    cin>>strString[1000];
    string strEncrypt;
    int a = 0;

while (strString != '\0')
{
    int b = (int)strString[a];
    strEncrypt.at(a) = b;  //This is where I'm getting an error.
    a++;
}

cout<<"Encrypted message:"<<endl;
cout<<strEncrypt<<endl;
}

所以,我已经尝试了我知道的所有 3 件事来解决问题(谷歌,检查丢失的分号,并确保我正在做 == 而不是 =,但这只是我不知道如何做的事情做,而不是我忘记的事情(我希望)。所以,任何帮助都会很棒!

最佳答案

您不必将字符更改为它们已经存在的 ASCII。字符在内存中与整数基本相同。

现在回答你的问题; .如果你想在字符串中设置一个字符,你可以这样做

string[index] = b;

在您的代码中要注意的另一件事。您正在使用 cin 从用户那里读取字符串。这不会让您阅读其中有空格的消息,并且只会阅读第一个单词。例如,如果用户输入“Love Crypto”,cin 将只读取“Love”,而“Crypto”将被忽略。要获取整行,请改用 getline

至于遍历字符串中的字符,最好按如下方式进行:

for(int i = 0; i < strString.length(); i++)
{
    strString[i] = bla;
}

同样,您的代码实际上并没有做任何事情。它只是读取一个字母,然后将 “字母” 存储在另一个字符串中。

关于C++,文本到 ASCII while 循环错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7005645/

相关文章:

c++ - openSSL 中的 BN_hex2bn 神奇地出现段错误

android - 如何防止我的 apk 出现 "teardown"

c++ - 什么是 std::__lg?

c++ - 如何判断一个 exe 是否依赖于某些 Qt 图像格式 dll?

c++ - 如何实现最大堆

java - 我如何才能最好地保护此 javax.crypto 服务器客户端中的 IV 和 key 密码

OpenSSL 错误 0200B009 错误的文件描述符

ios - 如何测试文件是否已使用 RNCryptor 加密?

c++ - 从构造函数中捕获异常意味着我的实例之后超出了范围

c++ - Eigen 中的扩展/填充矩阵