gpt4 book ai didi

c++ - 代码没有错误,但在命令提示符下什么都不做

转载 作者:行者123 更新时间:2023-12-02 11:08:58 25 4
gpt4 key购买 nike

我无法让我的代码在命令提示符下运行,我没有收到任何错误,但是当我运行代码时没有任何 react 。

#include <iostream>
#include <stdexcept>
using namespace std;
//defines the maximum queue size
#define MAX_QUE_SIZE 10
//creates the "rules" for the queue
class queue {
private:
int A[MAX_QUE_SIZE];
int front;
int rear;

public:
queue() {
front = -1;
rear = -1;
}

//checks to see if the queue is empty
bool isEmpty() {
return (front == -1 && rear == -1);
}

//checks to see if the queue if full
bool isFull() {
return (rear + 1) % MAX_QUE_SIZE == front ? true : false;
}

//checks to see if the queue is full, if not then it adds to the queue.
//if so it gives an error message.
void enqueue(int element) {
if (isFull()) {
throw std::overflow_error("QUEUE FULL");
}
if (isEmpty()) {
front = 0;
rear = 0;
}
else {
rear = (rear + 1) % MAX_QUE_SIZE;
}
A[rear] = element;
}

//checks to see if the queue is empty, if not then it deletes from the queue
//if sos it gives an error message.
void dequeue() {
if (isEmpty()) {
throw std::underflow_error("QUEUE EMPTY");
}
else if (front == rear) {
rear = -1;
front = -1;
}
else {
front = (front + 1) % MAX_QUE_SIZE;
}
}

//checks to see if the queue is empty, if so it gives a message saying so
//if not then it prints all the items in the queue

void printqueue() {
if (isEmpty()) {
cout << "EMPTY QUEUE";
}
else {
int count = (rear + MAX_QUE_SIZE - front) % MAX_QUE_SIZE + 1;
cout << "Queue : ";
for (int i = 0; i < count; i++) {
int index = (front + i) % MAX_QUE_SIZE;
cout << A[index] << " ";
}
cout << "\n\n";
}
}
};

int main()
{
queue Q; // creating an instance of Queue.
int i;
int k = 0;
int x;

std::cout << "Please enter some integers (enter 0 to exit):\n";
//a do-while statement that adds to the queue
do {
std::cin >> i;
//tries to add to the queue, if the queue is full it gives and overflow error
try {
Q.enqueue(i);
}
catch (std::overflow_error e) {
std::cout << e.what() << endl;
}
} while (i != 0);
std::cout << endl;
Q.printqueue();

std:cout << "How many values do you want to dequeue:\n";
std::cin >> x;
cout << endl;
//a for loop that dequeues the number of items the user wants to delete
//try the foor loop and dequeue function, if the queue is empty then it gives an underflow error
try {
for (int k = 0; k < x; k++) {

Q.dequeue();
}
}
catch (std::underflow_error e) {
std::cout << e.what() << endl;
}


Q.printqueue();

return 0;
}

我也在输入 g++ -o ehQue ehQue.cpp 来编译它。我不确定这是否会导致错误,或者我的代码本身是否会导致错误。任何数量的帮助将不胜感激。

最佳答案

我怀疑你只是没有执行你的代码。它编译并运行。

您正在编译程序(而不是执行它):

g++ -o ehQue ehQue.cpp

该命令可以理解为调用程序“g++”,它应该只是编译器“gcc”的别名。它获取源代码并生成目标代码,然后将其链接以生成可执行二进制文件(程序)。
-o ehQue

是指定输出文件名的命令参数。编译器将获取提供的文件并(尝试)生成一个名为“ehQue”的工作可执行文件。
ehQue.cpp

是您指定给编译器的源代码。

在您的终端(您在其中键入 g++ 命令)中,您还需要使用以下命令调用程序:
./ehQue

或者特定于 Windows 命令提示符:
ehQue

你应该在哪里找到你的程序运行。

(切线)除非您特别需要重新发明轮子,否则 CPP 的定义功能之一是标准模板库 (STL),它是核心规范的一部分...包装 std::deque建议在具有打印功能的类(class)中。

关于c++ - 代码没有错误,但在命令提示符下什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47683654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com