小编Fil*_*efp的帖子

使用两个线程运行并打破无限循环

我试图运行一个循环,直到用户选择打破它.无论用户是想要整晚运行该功能还是仅仅几秒钟,循环应该重复,直到用户决定停止它为止.

在研究解决方案时,我遇到了使用两个线程来实现这一目标.第一个线程将运行无限循环,而第二个线程等待用户输入.在接收到该输入后,第二个线程将终止第一个然后返回.

  • 如何使用第二个线程终止第一个?

#include <iostream>
#include <iomanip>
#include <ctime>
#include <thread>
#include <cstdlib>
#include <Windows.h>

using namespace std;

void timeCount()
{
    time_t rawTime;
    struct tm * timeinfo;

    do
    {
        Sleep(500);
        system("cls");
        time(&rawTime);
        cout << "Seconds passed this epoch:" << rawTime << endl << endl;
        timeinfo = localtime(&rawTime);
        cout << "The local time is:" << asctime(timeinfo) << endl;
        timeinfo = gmtime(&rawTime);
        cout << "The UTC time is :" << asctime(timeinfo) << endl;
    } while (1 != 0);

};

void getStop()
{ …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading infinite-loop c++11

0
推荐指数
1
解决办法
3936
查看次数

如何解决重复的符号错误?

我正在编译2个C++文件.4如果包含头文件.问题是,当链接器尝试将文件链接在一起时,我不断收到"重复符号"错误.

这是我的文件.


main.h

int test2();
Run Code Online (Sandbox Code Playgroud)

main.cc

#include "main.h"
#include "test.h"

int test2(int test) {
    return 0;
}

int main() {

    test2(test());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

test.h

int hello = 10;
int test();
Run Code Online (Sandbox Code Playgroud)

test.cc

#include <iostream>
#include "test.h"
using namespace std;

int test() {
  cout << hello << endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想我做的事情很简单.有人可以指出我做错了什么.这是我编译文件的方式.

c++ main.cc test.cc -o main
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

duplicate symbol _hello in:
/var/folders/nj/568_95bj4dg9v11l_mksv_2m0000gn/T/main-3becdd.o
/var/folders/nj/568_95bj4dg9v11l_mksv_2m0000gn/T/test-e84473.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-construction linker

0
推荐指数
1
解决办法
1825
查看次数

拆分文本需要空间给我一个空项目?

拆分后我真的需要空间来获得三个元素吗?或者有人可以解释为什么会如此?(注意:ruby中的代码,不确定它是如何用不同的语言)

test1="2011112512215| | "
test2="2011112512215||"

puts test1.split("|").length    # =3
puts test2.split("|").length    # =1
Run Code Online (Sandbox Code Playgroud)

ruby split

-2
推荐指数
1
解决办法
129
查看次数

在C++地图中搜索带有前缀的所有键

我正在使用地图来存储数据.地图有很大的数据.我想找到具有前缀的键,结果项数量的限制为50.我想使用最快的搜索方式,而不是遍历整个地图并检查,因为map已经是一个结构化的键值容器.

例如,如果我有一些对:

<"foo123", value>

<"foo234", value>

<"bar12", value>

<"foo456", value> 

<"bar200", value>
Run Code Online (Sandbox Code Playgroud)

如果我搜索"foo",它会建议我

foo123, foo234, foo456. 
Run Code Online (Sandbox Code Playgroud)

c++ dictionary

-2
推荐指数
1
解决办法
1244
查看次数

这个枚举的大小是多少,以字节为单位?C++

这个枚举的大小是多少,以字节为单位?C++

enum Cars { Toyota, Suzuki, Volkswa, Mitsubish, Alfarome, Holden, Bradleys };
Run Code Online (Sandbox Code Playgroud)

c++

-2
推荐指数
2
解决办法
1659
查看次数