首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用了C++异常处理程序,但未启用展开语义:它意味着什么,以及如何修复它?

使用了C++异常处理程序,但未启用展开语义:它意味着什么,以及如何修复它?
EN

Stack Overflow用户
提问于 2017-06-15 03:23:29
回答 1查看 6.5K关注 0票数 2

我正在制作一个简单的程序,通过使用泡泡排序对一副牌进行排序,然后显示它。我得到了一个奇怪的运行时错误。有人能向我解释一下错误并给出解决方法的建议吗?

错误:

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':权限被拒绝

我的守则:

代码语言:javascript
运行
复制
#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; 
        
}
EN

回答 1

Stack Overflow用户

发布于 2017-06-15 04:36:25

/EHsc不是一个错误,它只是一个警告。错误是关于文件I/O的:

代码语言:javascript
运行
复制
Cannot open compiler generated file: 'C:\SortedCards.obj': Permission denied

确保对该文件具有写权限后,只需重新构建该文件即可。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44557986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档