代码在编译后返回相同的内容?

时间:2013-02-17 21:30:45

标签: c++

我的代码现在遇到了一些严重的问题。分配是编写一个接受4位整数的函数,对其进行加密并返回新加密的数字。

出于某种原因,我的代码在编译之后返回完全相同的东西(编号1886676324)。它甚至没有阅读cout声明。有人可以看看,看看有什么问题吗?

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

int numSwap(int A[])
{
int t;
int encryptedVal= 0;
for(int i =0; i<4; i++)
{
if((i == 0)|(i == 1)){
A[i+2] = t;
A[i+2] = A[i];
A[i] = t;
}
encryptedVal = (A[i] * 10^(3-i)) + encryptedVal;
}
return encryptedVal;
}

int encrypt(int N)
{
int A[4];
for(int i =0; i<4; i++)
{
div_t M = div(N,(10^(3-i)));
div_t Encrypted = div(7+M.quot,10);
A[i] = Encrypted.rem;
N= M.rem;
}
return numSwap(A);
}

int main()
{
int UserVal;
cout<< 'Please input the 4 digit value to be encrypted' <<endl;
cin>>UserVal;
encrypt(UserVal);
return 0;
}

1 个答案:

答案 0 :(得分:3)

要解决cout的问题,请确保对字符串文字使用双引号:

cout << "Please input the 4 digit value to be encrypted" << endl;

单引号适用于'a'类型的字符文字(如'b'char)。如果你在一个字符文字中给出多个字符,你就有一个多字符文字,它的类型为int,具有实现定义的值,因此你得到的数字是输出。