Как произвести к консоли в C++ / Windows

Как насчет того, чтобы использовать регулярное выражение /#([\w]+\b)/gm и соединить пробелом , как показано ниже, чтобы извлечь #hastags из вашей строки? ИЛИ Вы можете использовать str.replace(/\b#[^\s#]+/g, " [114]amp;"), как прокомментировано @Wiktor

function findHashTags(str) {  
    var regex = /#([\w]+\b)/gm;
    var matches = [];
    var match;

    while ((match = regex.exec(str))) {
        matches.push(match[0]);
    }
    return matches;
}
let str1 = "#World is a #good #place to #live."
let str2 = "#World#place#live";
let res1 = findHashTags(str1);
let res2 = findHashTags(str2);
console.log(res1.join(' '));
console.log(res2.join(' '));

15
задан Peter Mortensen 14 July 2015 в 23:01
поделиться

9 ответов

Так как Вы упомянули stdout.txt I google'd это для наблюдения то, что точно создаст stdout.txt; обычно, даже с Приложением Windows, консольный вывод переходит к выделенной консоли, или никуда если Вы не выделяетесь.

Так, принимая Вы используете SDL (который является единственной вещью, которая подняла stdout.txt), необходимо последовать совету здесь . Или freopen stdout и stderr с "ДОВОДОМ"ПРОТИВ"", или делают другие обходные решения компоновщика/компиляции там.

В случае, если связь разорвана снова, вот точно, на что сослались от libSDL:

, Как я стараюсь не создавать stdout.txt и stderr.txt?

"Я верю в проекте Visual C++, который идет с SDL существует цель SDL_nostdio>, можно создать, который делает то, что Вы хотите (ТМ)".

, "Если Вы определяете "NO_STDIO_REDIRECT" и перекомпилировали SDL, я думаю, что он решит проблему".>> (Любезность ответа Bill Kendrick)

16
ответ дан 1 December 2019 в 00:24
поделиться

Я предполагаю, что Вы используете некоторую версию Visual Studio? В окнах, std::cout << "something"; должен записать что-то в консоль, ЕСЛИ Ваша программа является установкой в настройках проекта как консольная программа.

1
ответ дан 1 December 2019 в 00:24
поделиться

Ваше приложение должно быть скомпилировано как консольное приложение Windows.

2
ответ дан 1 December 2019 в 00:24
поделиться

При использовании Visual Studio, необходимо изменить свойство проекта : Свойства Конфигурации -> Компоновщик -> Система -> SubSystem.

Это должно быть установлено на: Консоль (/SUBSYSTEM:CONSOLE)

Также необходимо изменить WinMain, чтобы быть этой подписью:

int main(int argc, char **argv)
{
    //...
    return 0;
}
4
ответ дан 1 December 2019 в 00:24
поделиться

Windows API function AllocConsole создаст консоль для Вашего приложения.

4
ответ дан 1 December 2019 в 00:24
поделиться

Прежде всего, какой компилятор или dev среда - Вы использование? Если Visual Studio, необходимо сделать проект консольного приложения произвести консоль.

112-секундный,

std::cout << "Hello World" << std::endl;

должен работать в любом консольном приложении на C++.

4
ответ дан 1 December 2019 в 00:24
поделиться

При использовании Visual Studio она должна работать просто великолепно!

Вот пример кода:

#include <iostream>

using namespace std;

int main (int) {
    cout << "This will print to the console!" << endl;
}

Удостоверяются, что Вы выбрали консольное приложение Win32 при создании нового проекта. Тем не менее можно перенаправить вывод проекта в файл при помощи консольного переключателя (>>). Это на самом деле перенаправит консольный канал далеко от stdout до Вашего файла. (например, myprog.exe >> myfile.txt).

я желаю, чтобы я не ошибался!

3
ответ дан 1 December 2019 в 00:24
поделиться

Если у Вас есть приложение ни-одних-консолей, можно создать консоль с функция AllocConsole. После того, как созданный, можно записать в него с помощью нормального станд.:: методы суда.

5
ответ дан 1 December 2019 в 00:24
поделиться

Whether to use subsystem:console or subsystem:windows kind of depends on whether how you want to start your application:

  • If you use subsystem:console, then you get all of the stdout written to the terminal. The trouble is that if you start the application from the Start Menu/Desktop, you (by default) get a console appearing as well as the application window (which can look pretty ugly).
  • If you use subsystem:windows, you won't get stdout/stderr even if you run the application from a DOS window, Cygwin, or other terminal.

If you want the middle way which is to output to the terminal IF the application was started in a terminal, then follow the link that Luke provided in his solution (http://dslweb.nwnexus.com/~ast/dload/guicon.htm)

For reference, I ran into this problem with an application that I want to run in either normal Windows mode or batch mode (that is, as part of a script) depending on command-line switches. The whole differentiation between console and Windows applications is a bit bizarre to Unix folks!

3
ответ дан 1 December 2019 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: