我正在尝试打印最接近的素数ASCII的问题,但没有输出。有什么问题以及如何解决?
代码:
1
输入:
Your Code's Output
375 AvfmaLgLRpQadLyThsxVzkUqbFOdxfbLGdpBWOwmAnflENlYFbdhNHerHVtZkaPLgMtNQovVHpwGfHJdXXWAhYrhwXKPxtnpxCIsaXVAkcxTpVprFNeOVcnSEsgIvfqXPRSUASSDCvAGrFJCDbzGLFhrMYWALElChmurLrEeQttIWctyhQXzZUVAYuCIZecBJbXMxlMHFbZxJRTSZJmZAwCggGabVsovqBrdmmbCTaIHDfUunLFntfGzodKqoAKwCassKMDybethRaQgegsOawfNCNrIAkECEKpbwElhvWtlZBEZqJQpEkzpiSjrqZZIHbszUxwuWreXkxFKxSAiKoemIqETGVxcCjweKhbyXxhVKCbNTQBKgHD
{{1}}
"您的代码没有打印任何内容。"
答案 0 :(得分:4)
cin>>S[j];
正在访问S
越界,因为S
为空。您可能希望将其替换为例如:
char ch;
cin >> ch;
S += ch;
或者只是一次读取整个字符串而不先输入长度:
cin >> S;
此外,我收到编译错误"控件可能会达到非空函数的结束"为performAll
。即它缺少一份退货声明。
答案 1 :(得分:3)
你正在践踏内存std::string
分配。当你到达 p>
cin>>S[j];
S
为空,因为它是默认构造的。如果索引对于写入无效并且空字符串没有有效的可写索引,则尝试使用operator[]
向其添加数据是未定义的行为。