c++编程问题 运行发生错误debug assertion failed

题目是1.
从mima.txt文件中读入一串电文,密钥为1234,根据密钥将电文译成相应的密码。
如,读入abcd,则密码应为bdfh。
a→b b→d c→f
d→h。
程序说明:密钥已知可以用一个包含四个元素的数组key[]={1,2,3,4}表示;电文是从文件中读入,其元素个数未知,则可以向量来读取
我写的代码如下
#include
<iostream>
#include <fstream>
#include <vector>
using
namespace std;
void main()
{vector<char> a;
char x;int
b[4]={1,2,3,4},i;
ifstream cin("mima.txt"); \\密码文件中 内容是什么都无所谓,只要是英文字母就行了。 我想知道
如果我两个英文字母之间如果不用空格隔开 运行会不会出错。
for(i=0;cin>>x;i++)
{if(i==4)i=0;
x=x+b[i];
a.push_back(x);}
for(i=0;i<a.size();i++)
;查看答案
cout<<a<<"
";
}。
我用vs2010运行出现了vector subscript out of range
我是想输出向量a中 保存的密码。 问题是
我不知道 密码有多少位。

第1个回答  2013-10-14
密码的位数就是a.size(), 你输出是就cout<<a[i]<<" ";就行了, 上面你写成了cout<<a<<" ".
改完之后我执行通过了(VS2012)
相似回答