棘手的代码:std :: locale :: global(std :: locale(""));

时间:2015-09-11 06:56:20

标签: c++ c++11

我这里有一段非常脏的代码(折磨学生是非常棘手的代码)

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

int _tmain(int argc, _TCHAR* argv[])
{
    std::locale::global(std::locale(""));

    cout << "MagicIF" << endl;
    cout << "-------" << endl << endl;

    int a(7), b(42), c(1);
    cout << "a = " << a << endl << "b = " << b << endl << "c = " << c << endl << endl;

    if (a < b)
        if (c > a)
            cout << "a ist kleiner als b und kleiner als c." << endl;
    else
        cout << "a ist grösser oder gleich b." << endl;

    cout << endl;
    system("pause");
    return 0;
}

第一行是令人兴奋的部分:

std::locale::global(std::locale(""));

当您按原样启动代码时,&#34; if / else&#34;构造将无法正常工作。当你设置一些大括号,以便&#34; if / else&#34;正在工作,上面的行可能会创建一个无限循环。

那么,这怎么可能?这条线到底在做什么?

0 个答案:

没有答案