我正在尝试使用 C++ 构建一个骰子程序,它没有显示我的 return

I'm trying to build a dice program using C++ it isn't displaying my return

代码正在打印问候语和除号码以外的所有消息。我需要查看我的随机数生成器正在生成什么。

#include <iostream>
#include <cstdlib>
#include <ctime>

void greeting(int pnum){
       if(pnum == 1) {
           std::cout << "Please press \"ENTER\" to roll the die"; 
       }
       else {
            std::cout << "Please press \"ENTER\" to roll the die AGAIN"; 
       }
        std::cin.ignore();
}

int dieroll(void){
    int ran;
    srand(time(NULL));
    ran = rand()%6+1;
    std::cout << "You have rolled :" << std::endl;
    return ran;
}

int main(void){
    int counter, firstdie, ran;
    char firststart;

    do {
        greeting(1);
        firstdie = dieroll();
    }
 
    while (ran > 0);
    {
        return ran;
    }
    
    std::cin.ignore();
    return 0;
}

我是初学者,所以我不确定从哪里开始解决问题。我正在研究制作局部变量。

主要是你这样做

while (ran > 0);
{
    return ran;
}

首先你永远不会给 'ran' 一个值,所以它要么 > 0,在这种情况下你会以随机完成代码退出。或者 'ran' 是 <= 0,在这种情况下,您以值 0 退出。

不清楚你想在这里做什么,但无论哪种方式你的程序都会立即终止

明确一点,main 中的 return 会导致您的程序立即停止

那么这里

int dieroll(void){
    int ran;
    srand(time(NULL));
    ran = rand()%6+1;
    std::cout << "You have rolled :" << std::endl;
    return ran;
}

你打算打印'ran'但实际上没有,你需要

    std::cout << "You have rolled :" << ran << std::endl;

不知大家是否认为这里的'ran'和main中的'ran'是一样的,其实不然,它们之间没有关系