永发信息网

小加密程序在VC下出错了,这为什么呀?

答案:1  悬赏:50  手机版
解决时间 2021-04-28 14:17

<pre>

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
#define N 100

void main(){
char input[N];
char pdelta[N];
unsigned int seed;
char delta;
int i,len;

cout<<"**************************"<<endl;
cout<<"*能实现解码操作的加密程序*"<<endl;
cout<<"**************************"<<endl;

cout<<"请输入密码(0~10000)"<<endl;
cin>>seed;
srand(seed);

cout<<"请输入你想要加密的文字,在屏幕上将显示加密后的文字"<<endl;
for(i=0;i<N;i++)
{
input[i]=getch();
delta=(char)rand()%100;
switch(input[i])
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
input[i]+=delta;
break;
default:
delta=0;
break;
}
pdelta[i]=delta;
if(input[i]=='\n'||input[i]=='\r')
break;
}
input[i]='\0';
len=i+1;
cout<<"你输入文字的密文是:"<<endl;
puts(input);
cout<<"\n按任意键开始解密..";
getch();
for(i=0;i<len;i++)
input[i]-=pdelta[i];
cout<<"\n你输入文字的原文是:\n";
puts(input);
}

</pre>

不知道为什么在vc下是这样的结果,执行完<pre>

cout<<"你输入文字的密文是:"<<endl;
puts(input);
</pre>

后是等待输入一个字符,也就是在执行getch();语句。当输入一个字符后,却又执行了最后一句puts(inputs); 郁闷呀~~~为什么是在VC里是这样的顺序?????


最佳答案

input[i]='\0';
len=i+1;
printf("你输入文字的密文是:");
puts(input);
printf("\n按任意键开始解密..");
getchar();
for(i=0;i<len;i++)
input[i]-=pdelta[i];
printf("\n你输入文字的原文是:");
puts(input);



这样改动之后显示就正常了。发生这种状况估计跟包含的三个输入输出的头文件有关,导致在编译的时候cout语句和puts语句的执行顺序发生变化。再具体的我也不清楚了。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
逾矩为何意??
西宁路/长春路(路口)在什么地方啊,我要过去
梦见老鼠变猫怎么回事!
李明收集邮票40枚,王红收集的邮票比李明多2&
南阳市今年走的兵是哪的?
造影后未见脑动脉血管瘤
经验加速中就不能做学而不倦任务?
对方的英文怎么说
3GP视频合并器
海拉尔取暖期是哪天
如何让C#立即释放资源
无人知是荔枝来的前一句?
你们在哪个区玩炫舞,我想换个区玩怕去了没认
手机怎么开不开机
手机卡坏了
推荐资讯
英雄岛水晶币供应商在那
谁可以帮我注册一个无名blog?(已经有雅虎奇
邢台冷库街那的房子 滨江丽景 怎么样?
六班口号搞笑霸气,高一六班霸气口号 求求各位
DNF天然奶酪在什么级别的分解师中分解才会得
液晶显示屏电视,对人有伤害吗
留坝县城关镇综治维稳工作中心在什么地方啊,
问道数学题:要详细解答!
走近科学有一集讲一个女孩子对异性特别敏感与
DNF我想把我的武器强到11可是我不敢!害怕碎
右侧额窦、双侧筛窦炎、鼻中隔稍向右偏曲、需
我电脑进不了农场
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?