- 締切済み
C言語の質問
授業で習ったgotoxy();やclrscr();をMicrosoft visual studio2019で使おうとしたのですが、識別子は認識されませんとエラーが起こります。 ネットでいろいろ調べたところもうこれらの関数は対応していないらしいのですが、代わりになる関数が出てきません。 何か代わりになるような関数を教えていただけないでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kzr260v2
- ベストアンサー率48% (863/1797)
Microsoft C/C++ コンパイラ (MSVC) は、ISOのCと互換性がありますが、厳密に準拠しているわけではないようです。以下はMSからの資料です。 https://docs.microsoft.com/ja-jp/cpp/build/walkthrough-compile-a-c-program-on-the-command-line?view=msvc-160 とはいえ、ISOでもgotoxyは廃止されているようですから、利用された授業は、とても古い環境でコンパイルしていたか、独自にライブラリを読み込んでコンパイルしていたのかもしれません。(ざっとGoogle検索してみたところ、WindowsではなくLinux向けならばgotoxy対応のライブラリはあるようです) ※ gotoxyは出力文字位置の指定で、clrscrは画面クリア、といったあたりです。コマンドラインアプリで、画面の表示体裁を整えることは、それほど重要ではないはずなので、体裁を無視した設計に調整しなおすのもひとつの方法です。 ※ Windows10のProfessional以上のエディションならば、Linuxを実行しやすくなっています。この機能は、Windows System for Linux(WSL)という名称で、Microsoftの正式なものです。 そしてGCCコンパイラで、ncursesライブラリを利用するよう記述したソースコードなら、gotoxyは通りますし、実行もLinuxでなら行なえるはずです。 どうしてもというなら、このような方法もあります。 以上、参考にならなかったらごめんなさい。
- bardfish
- ベストアンサー率28% (5029/17766)
それらま関数はC言語の標準関数ではありません。 ですからVisualC++/C#でコンパイルエラーになるのは当たり前です。 「対応していない」のではなく「そういうライブラリをしていた」となります。 C言語には元々そういう関数がないのですから自分で用意するしかありません。 関数名からの想像ですが、コマンドプロンプト用の関数でしょうか? 指定の座標に文字を表示するための関数がgotoxy()、表示をクリアするのがclrscr()?もしかしたらClearScreenの略かな? そういうのはエスケープシーケンナスで実現できるのですが、WindowsのNT系では使えなくなったと思っていたので使おうとは思いません。Wiondows10の最新環境ではCMD.exeではなくPowerShellの使用が推奨されていたはずです。PowerShellでエスケープシーケンスが使えるのかな?
- AsarKingChang
- ベストアンサー率46% (3467/7474)
gotoxy();やclrscr();を これらのプロトタイプとソースを持ってきて、 VSでコンパイルすればいいだけです。 それが無理なら、 http://7ujm.net/etc/esc.html このエスケープシーケンスを 同じ名前で関数化して、プロトしてください。