我试图在c 中编码一个句子,而我回来的唯一加密是句子中单词的第一个字母,而不是句子中的所有字母。这是我的代码,我获得的输出低于我的代码。在下面是我应该拥有的输出。
#include <iostream>
#include <string>
using namespace std;
int main ()
{
int multi;
int adder;
char words;
cout << "What is your multiplier?" << endl;
cin >> multi;
cout << "What is your adder?" << endl;
cin >> adder;
cout << "Enter in a sentence you want encrypted" << endl;
cin >> words;
cout << "Encrypted: " << endl;
cout << (int)words * multi + adder << endl;
return 0;}
我的输出:
您的乘数是什么?
4
您的加法器是什么?
3
输入要加密的句子
管家做到了
加密:
339
这是我应该拥有的代码:
您的乘数是什么?
4
您的加法器是什么?
3
输入要加密的句子
管家做到了
加密:
339 419 407 131 395 471 467 435 407 459 131 403 423 423 403 131 423 467
我缺少什么?
在您的代码中,words
是char
变量,只能存储一个字符。相反,您可以将words
声明为std::string
类型,并包括string
库。
std::string words;
要计算每个字符的值,您需要运行一个循环,例如
cout << "Encrypted: " << endl;
for(int i=0;i<words.size();i++)
{
cout << (int)words[i] * multi + adder << " ";
}
cout << endl;
多个问题:
-
char words
----仅需一个字符。将其更改为string words
-
要与多个单词保持一行,请使用
getline
函数#include <iostream> #include <string> using namespace std; int main () { int multi; int adder; string words; cout << "What is your multiplier?" << endl; cin >> multi; cin.clear(); cout << "What is your adder?" << endl; cin >> adder; cin.ignore(); cout << "Enter in a sentence you want encrypted" << endl; getline(cin, words); cout << "Encrypted: " << endl; for(int i=0;i<words.length();i++) { cout << (int)words[i] * multi + adder << " "; } cout << endl; system("PAUSE"); return 0; }