5

何かが true の場合に定数を定義し、その値を "system(""); 内で使用したい。

例えば:

#ifdef __unix__
#   define CLRSCR clear
#elif defined _WIN32
#   define CLRSCR cls
#endif


int main(){
    system("CLRSCR"); //use its value here.
}

conio.h/conio2.hにあることは知っていますclrscr();が、これは単なる例です。そして、起動しようとすると、cls宣言されていない、またはCLRSCRが内部コマンドではない(bash)と表示されます

ありがとう

4

2 に答える 2

6

定数は、文字列リテラルではなく識別子です (文字列リテラルは二重引用符で囲まれていますが、識別子はありません)。

一方、定数値は文字列リテラルであり、識別子ではありません。次のように切り替える必要があります。

#ifdef __unix__
#   define CLRSCR "clear"
#elif defined _WIN32
#   define CLRSCR "cls"
#endif


int main(){
    system(CLRSCR); //use its value here.
}
于 2012-05-24T12:51:19.613 に答える
4

あなたはこれを必要とします:

#ifdef __unix__
   #define CLRSCR "clear"
#elif defined _WIN32
   #define CLRSCR "cls"
#endif


system(CLRSCR); //use its value here.
于 2012-05-24T12:51:11.837 に答える