我正在制作一个简单的程序,通过使用泡泡排序对一副牌进行排序,然后显示它。我得到了一个奇怪的运行时错误。有人能向我解释一下错误并给出解决方法的建议吗?
错误:
C:\程序文件(X86)\MicrosoftVisualStudio14.0\VC\INCLUDE\xlocale(341):警告C4530:使用C++异常处理程序,但未启用解除语义。指定/EHsc C:\程序文件(X86)\MicrosoftVisualStudio14.0\VC\INCLUDE(359):警告C4577:‘no以外’使用时没有指定异常处理模式;不能保证异常终止。指定/EHsc 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;
}
发布于 2017-06-15 04:36:25
/EHsc
不是一个错误,它只是一个警告。错误是关于文件I/O的:
Cannot open compiler generated file: 'C:\SortedCards.obj': Permission denied
确保对该文件具有写权限后,只需重新构建该文件即可。
https://stackoverflow.com/questions/44557986
复制相似问题