電子書籍の厳選無料作品が豊富!

いつもお世話になっています。

Microsoft Visual C++ 2005 Express Editionのコンソールアプリケーションで文字色の変更や、文字を表示する位置を指定する方法をご教授いただけますでしょうか?

C言語での操作はできますが、C++でのやり方がわかりません。

OSは Windows XP です。
宜しくお願いします。

A 回答 (5件)

過去に同じ質問を私もしたことがあるので


掲載しておきます。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2102769
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございます。

お礼日時:2006/09/02 09:02

> if (SetConsoleCursorPosition(hStdout, dwPos) == 0)



#2の補足内容からはSetConsoleCursorPositionの使い方がわからないかの印象を受けましたが、C言語で記述したときには使っていたのですか?

いまいち状況が把握できません。
Microsoft Visual C++ 2005 Express Editionを使ってC言語ではできたんですよね。それとも全く別の環境でできたということでしょうか?
    • good
    • 0
この回答へのお礼

ご返答ありがとうございました。

お礼日時:2006/09/02 09:01

> C言語での操作はできますが、



具体的にどのようにしたのか補足してください。

この回答への補足

どこかのサイトで見つけた関数を少しいじりました。

#include <windows.h>

int SetLocate(int x, int y)
{
HANDLE hStdout;
COORD dwPos;
dwPos.X = (SHORT)x;
dwPos.Y = (SHORT)y;
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);

if (SetConsoleCursorPosition(hStdout, dwPos) == 0)
return -1;
else
return 0;
}

補足日時:2006/08/18 12:03
    • good
    • 0

WindowsXPだとエスケープシーケンスは利かないので、


Win32APIを呼び出すことになります。
Cで今実現できているなら、C++であっても同じ方法で可能なはずですが、SetConsoleCursorPosition等で制御できませんか。

この回答への補足

ご回答ありがとうございます。

SetConsoleCursorPositionの使用方法をご教授いただけますでしょうか。

宜しくお願いします。

補足日時:2006/08/18 12:04
    • good
    • 0

エスケープシーケンスのことでしょうか?


言語的な違いは関係ないと思いますが。

参考URL:http://kasai86.ld.infoseek.co.jp/dos/esc.htm

この回答への補足

回答ありがとうございます。
エスケープシーケンスのことです。

参考URLに「C:\Windows\System32 にconfig.NTがありますので、これにdevice=%SystemRoot%\system32\ansi.sysと記述します。」とありますが、どこの場所に記述するのでしょうか?

適当な場所に記述してもエスケープシーケンスが使用できませんでした。

補足日時:2006/08/18 11:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!