我正在做一个简单的程序,通过使用冒泡排序对一副牌进行排序,然后显示它。我得到了一个奇怪的运行时错误。有人能向我解释这个错误并给予如何修复它的建议吗?
错误代码:
C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xlocale(341):警告C4530:使用了C++异常处理程序,但未启用展开语义。指定/EHsc
C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\exception(359):警告C4577:未指定异常处理模式时使用“noexcept”;不保证异常终止。
C:\SortedCards.cpp:致命错误C1083:无法打开编译器生成的文件:'C:\SortedCards. obj':权限被拒绝
我的代码:
#include <iostream>
#include <vector>
using namespace std;
class SortedCards
{
private:
vector<double> v;
int nElems;
void swap(int one, int two) {
double temp = v[one];
v[one] = v[two];
v[two] = temp;
}
public:
SortedCards(int max) : nElems(0)
{
v.resize(max);
}
void insert(double value)
{
v[nElems] = value;
nElems++;
}
void display() {
for (int i = 0; i < nElems; i++) {
if (v[i] == 11) {
cout << "A ";
}
else if (v[i] == 12) {
cout << "J ";
}
else if (v[i] == 13) {
cout << "Q";
}
else if (v[i] == 14) {
cout << "K";
}
else {
cout << v[i] << " ";
}
}
cout << endl;
}
void bubbleSort()
{
int out, in;
for (out = nElems - 1; out > 1; out--) {
for (in = 0; in < out; in++) {
if (v[in] > v[in + 1]) {
swap(in, in + 1);
}
}
}
}
};
int main() {
int maxSize = 100;
SortedCards arr(maxSize);
arr.insert(1);
arr.insert(2);
arr.insert(3);
arr.insert(4);
arr.insert(5);
arr.insert(6);
arr.insert(7);
arr.insert(8);
arr.insert(9);
arr.insert(10);
arr.insert(11);
arr.insert(12);
arr.insert(13);
arr.insert(14);
arr.insert(1);
arr.insert(2);
arr.insert(3);
arr.insert(4);
arr.insert(5);
arr.insert(6);
arr.insert(7);
arr.insert(8);
arr.insert(9);
arr.insert(10);
arr.insert(11);
arr.insert(12);
arr.insert(13);
arr.insert(14);
arr.display();
arr.bubbleSort();
arr.display();
return 0;
}
字符串
2条答案
按热度按时间clj7thdc1#
/EHsc
不是一个错误;它只是一个警告。这个错误是关于文件I/O的:字符串
只要在确保您对该文件具有写权限后重新构建它。
6kkfgxo02#
已经6年了,但我还是会尝试的。@ihk想说的是给给予cl.exe(这里的编译器)读写权限,以允许它输出目录中的文件。你可以在属性->安全选项卡部分修改它。这应该可以做到。
here is an image of what i am referring to