4

私は最近Ubuntuに取り組んでいます。gcc を使用して C プログラムをコンパイルすると、conio.h存在しないというエラーが表示されます。使いたいclrscr()getch()機能したい。Linux でこのヘッダー ファイルの代わりになるものを教えてください。

4

8 に答える 8

3

このgetch()関数はcurses.h(ライブラリ "curses") にあります。同じライブラリは、画面をクリアする関数を提供します。これらのリンクをチェックしてください:

http://linux.die.net/man/3/getch

http://linux.die.net/man/3/erase

于 2012-08-06T07:15:32.423 に答える
2

system("clear");の代わりにLinuxで使用できます。clrscr();

于 2015-01-13T08:35:00.030 に答える
2
# include <curses.h>

       int erase(void);
       int werase(WINDOW *win);
       int clear(void);
       int wclear(WINDOW *win);
       int clrtobot(void);
       int wclrtobot(WINDOW *win);
       int clrtoeol(void);
       int wclrtoeol(WINDOW *win);

DESCRIPTION
       The erase and werase routines copy blanks to every position in
       the window, clearing the screen.

基本的なC言語機能の理解が不十分であるか、OPがコードをエディター/ IDEにコピー/貼り付けているだけであるため、この質問は繰り返し反対票を投じられたと思います。

同様に、system("exit");コード内で次のように使用します。

#include<stdlib.h>
main()
{
system("clear"); //clears the screen
} 

マンページを確認すると、次のように表示されます。

SYSTEM(3)                                 Linux Programmer's Manual   SYSTEM(3)

NAME
       system - execute a shell command

SYNOPSIS
       #include <stdlib.h>

       int system(const char *command);

DESCRIPTION
       system() executes a command specified in command by calling /bin/sh -c 
command, and returns after the command has been completed.  
During execution of the command, SIGCHLD will be blocked, and SIGINT
and SIGQUIT will be ignored.

この質問が次の重複の可能性がある場合もあります。

最後に、詳細と例については、以下をご覧ください。

于 2015-10-02T17:29:15.273 に答える
0

システムコールの代わりに C コードを介して行う別の方法があります。

void clrscr(void) {
  fprintf(stdout, "\033[2J\033[0;0f");
  fflush(stdout);
}

ずっと前に見つけて、raspbianで正常にチェックしました。

また:

void gotoxy(int x, int y) {
  printf("%c[%d;%df",0x1B, y, x);
}

お役に立てば幸いです。

よろしく。

于 2017-01-10T14:28:23.593 に答える
0

私はいくつかのコードをいじっていました。ncurses をインストールした後、次のコードを挿入しました。

#include <stdio.h>
#include <ncurses.h>

main ()
{

system ("clear");
getchar ();

}
于 2016-07-03T17:29:26.923 に答える
0

G++ コンパイラでは、ヘッダー ファイルsystem("clear")で定義された関数を使用します。stdlib.h

#include<iostream>
#include<stdlib.h>

int main() {
  std::cout<<"Hello Aliens:";
  system("clear");
}
于 2018-03-27T01:36:56.243 に答える
0

どうやらあなたはグーグルを試していませんでした。

直接的な代替手段はありません。

このブログ投稿: http://wesley.vidiqatch.org/code-snippets/alternative-for-getch-and-getche-on-linux/は、getch()およびgetche()

または、libncurses を使用して必要なことを行うこともできます: http://tech.dir.groups.yahoo.com/group/linux/message/29221

于 2012-08-06T07:16:30.533 に答える