85816


VSCodeのデバッグで **統合ターミナルから** cinで入力を受け取りたいのですが、うまくいきません

[code]

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        string s;
        cin >> s;
        cout << s << endl;
    }
    
[/code]

このコードをVSCodeでF5キーを押してデバッグを開始すると、デバッガが起動してから以下のようなコマンド(?)がでてそこから反応がなくなり、中止するしかなくなります  
もちろんキー入力も不可能です

[code]

    C:\hoge> cmd /C "c:\Users\user\.vscode\extensions\ms-vscode.cpptools-1.8.0\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-oqrzmztc.o1u --stdout=Microsoft-MIEngine-Out-t2xl2cuv.3gu --stderr=Microsoft-MIEngine-Error-yrcgm1xw.lco --pid=Microsoft-MIEngine-Pid-s1bsojac.fmy --dbgExe=C:\MinGW\bin\gdb.exe --interpreter=mi "
    
[/code]

launch.jsonは以下のようになっています

[code]

    {
        // IntelliSense を使用して利用可能な属性を学べます。
        // 既存の属性の説明をホバーして表示します。
        // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "g++.exe - アクティブ ファイルのビルドとデバッグ",
                "type": "cppdbg",
                "request": "launch",
                "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${fileDirname}",
                "environment": [],
                "externalConsole": false,
                "console": "integratedTerminal",
                "MIMode": "gdb",
                "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
                "setupCommands": [
                    {
                        "description": "gdb の再フォーマットを有効にする",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    },
                    {
                        "description": "逆アセンブリ フレーバーを Intel に設定",
                        "text": "-gdb-set disassembly-flavor intel",
                        "ignoreFailures": true
                    }
                ],
                "preLaunchTask": "C/C++: g++.exe アクティブなファイルのビルド"
            }
        ]
    }
    
[/code]

`"externalConsole":
true`もすでに試して動作しましたが、プログラムと外部コンソールがすぐに終了して出力を確認できないなど、不都合が多かったので統合ターミナルからの入力方法を模索しています


CC BY-SA 4.0
2022-01-19T13:59:16.710
85798
2022-01-20T10:25:25.477
50976
question
c++ vscode
vscodeのc++のデバッグで統合ターミナルからcinをしたいができない


解決しました。

既存のコンパイラを消して、コンパイラを [MinGW](https://sourceforge.net/projects/mingw-w64/)
に変更したらできるようになりました。  
(vscodeのc/c++の拡張機能やlaunch.jsonのファイルなどは念の為一度消して入れ直しました)


CC BY-SA 4.0
2022-01-20T08:27:03.293
85816
2022-01-20T10:25:25.477
2022-01-20T10:25:25.477
50976
50976
85798
answer