podow blog

コード好きのブログ

【競プロ】MacのVSCode環境でなぜか「cinが定義されていません」や「coutが定義されていません」と表示される

状況

  • cinやcoutなどの下に赤い波線が引かれている
  • #include <bits/stdc++.h>は書かれている
  • #include<iostream>などSTLの読み込み処理を書けばエラーは消える
  • using namespace std;も書かれている
  • VSCodeを再読み込みしても治らない
  • 実行時にはエラーが出ない

 

解決策

Command + Shift + Pでコマンドパレットを開き、IntelliSenseと入力

 

C/C++: IntelliSense 構成を選択…」を選択

 

 

gcc-13を使用する」を選択(僕の環境ではgcc-13ですがgcc-12だったりするかもしれません)

 

あとはVSCodeを再読み込みすればcinやcoutの下の赤線が消えているはずです。

 

 

原因

bits/stdc++.hが使えるのはgccだけだが、なんらかの原因でVSCodeの環境にclangが選択されてしまったのが原因。そのためもう一度gccを選択するようにVSCodeに指示すればbits/stdc++.hが使用できるようになり、エラーが消える。

また、#include<iostream>を記述すればエラーが消えるのもbits/stdc++.hで読み込んでいるつもりだったiostreamが読み込めていなかっただけであるため、iostreamを読み込む処理を追記すれば当然エラーは出なくなる。