3

プログラミング言語 COBOL のコンパイラに問題があります。プログラム「OpenCobolIDE」(GnuCOBOL 1.1 Mingw)を使用しています。

まず、サンプルプログラムのコードです。

   IDENTIFICATION DIVISION.
   PROGRAM-ID. HelloWorld.
   DATA DIVISION.
   FILE SECTION.
   WORKING-STORAGE SECTION.
   01  name           pic x(32).
   PROCEDURE DIVISION.
   beginn section.
        DISPLAY "What is your Name?: " with no advancing.
        accept name.
        DISPLAY "Your Name: ",name .
        STOP RUN.
   END PROGRAM HelloWorld.

私の名前「Albert」を入力した後、コンソールは「Your Name: Albert」というメッセージを送り返しません。コンソールは「アルバート」が空になった後です。しかし、私の名前は 6 文字であるため、文字列名の長さを 6 に設定すると、プログラムは正しく動作し、コンソールには「Your Name: Albert」と表示されます。

これに加えて、節with no advancingが正しく機能しません。このコマンドを使用すると、コンソールに「What is your Name?」というメッセージが出力されず、行がスキップされ、最初に自分の名前を入力する必要があり、名前を入力した後にコンソールに「What is your Name?: Albert」と表示されます。しかし、コンパイルされたプログラムの .exe では、コマンド ラインwith no advancingは正しく機能します。

なぜそうなるのですか、どうすればそれを修復できますか?

4

1 に答える 1

3

より良い統合のためにOCIDEが使用する組み込みのpythonコンソールを使用しているようです。副作用は次のとおりです。非常に単純なもの以外を使用し始めるとすぐに、完全には機能しませんACCEPT/DISPLAY無効にする必要があります。

環境設定(F2)→タブ実行→「外部端末で実行」にチェック

ところで: OpenCOBOL IDE の Windows インストールには、GnuCOBOL の最新の公式 MinGW パッケージが同梱されています。これは現在 1.1 ですが、まもなくGnuCOBOL 2.0 rc2 (または最終版) になる予定です。古い GnuCOBOL 1.1 の代わりにこれを使用することを強くお勧めします。rc1 で非公式のプレビュー バージョンを入手したり、新しいバージョン (OCIDE にも追加される可能性があります) に注目したりできます。

編集:コメントにあるように:

問題は GnuCOBOL 1.1 の古いバージョンでした。更新後は正しく動作するためです!

于 2016-10-15T14:38:18.187 に答える