关于不会的c++问题

c++程序运行出窗口后输入参数再按回车键为什么就消失了。他让凑够30字,但我就这个问题,希望大家帮帮忙

这要看代码怎么写的啊

在代码结束前加上一行
getchar();
让程序暂停下。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/662621
  • 这篇博客也不错, 你可以看下【C++】【哈希表】【哈希函数】实现自己的哈希表,解决哈希冲突;动态哈希表;
  • 除此之外, 这篇博客: C++新特性31_利用C++自己封装线程同步锁(利用类的构造析构实现加锁解锁的自动化、利用引用实现在一个类中对另一个类的唯一对象的调用方法、利用对象及局部变量作用域减小颗粒度、其他类对象成员函数调用)中的 1.封装临界区方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    首先新建一个CMyMutex类对临界区方法进行封装,利用类的构造和析构将对象进行构造和析构,在类中创建加锁解锁函数。

    (1)CMyMutex.h:

    #pragma once
    #include <windows.h>
    
    class CMyMutex
    {
    public:
    	CMyMutex();
    	~CMyMutex();
    	void lock();
    	void unlock();
    private:
    	CRITICAL_SECTION m_cs;
    
    };
    

    CMyMutex.cpp:

    #include "CMyMutex.h"
    
    CMyMutex::CMyMutex()
    {
    	//使用前,需要对该对象进行初始化
    	InitializeCriticalSection(&m_cs);
    }
    
    CMyMutex::~CMyMutex()
    {
    	//当不在使用该锁时,需要将锁删掉
    	DeleteCriticalSection(&m_cs);
    }
    
    void CMyMutex::lock()
    {
    	//进去加锁
    	EnterCriticalSection(&m_cs);
    }
    
    void CMyMutex::unlock()
    {
    	//出去解锁
    	LeaveCriticalSection(&m_cs);
    }
    

    (2)main()中利用封装好的类进行对象创建析构及实现加锁解锁功能

    #include <tchar.h>
    #include <iostream>
    #include <thread>
    #include <mutex>
    #include <windows.h>
    #include "CMyMutex.h"
    
    using namespace std;
    
    int g_nData = 0;
    // 创建临界区对象,等价于锁
    CMyMutex g_mtx;
    
    void foo() {
    	//进来上锁
    	g_mtx.lock();
    	for (int i = 0; i < 100000; i++) {
    
    		g_nData++;
    
    	}
    	//出去解锁
    	g_mtx.unlock();
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    
    
    	std::thread t(foo);
    
    	//进来上锁
    	g_mtx.lock();
    	for (int i = 0; i < 100000; i++) {
    		g_nData++;
    	}
    	//出去解锁
    	g_mtx.unlock();
    
    	t.join();
    
    	std::cout << g_nData << std::endl;
    
    	return 0;
    }
    

    运行结果:
    在这里插入图片描述
    上述过程实现了临界区方法的封装,但是仍然使用的是手动的加锁和解锁功能,一旦忘记添加就会造成和上篇中忘记添加解锁造成无法跳出的问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^