إعادة تعيين الشاشة تشير إلى الجزء العلوي من الشاشة في نظام التشغيل Windows & Linux console
سؤال
لدي القليل من الروتين الذي تعمل تحت لينكس و ويندوز مكتوب في C و إخراج يعرض على وحدة التحكم.أنا لا تربط بأي شكل من الشتائم أو أي شيء مثل ذلك.
حاليا أنا مسح الشاشة باستخدام
#ifdef __WIN32
system( "cls" );
#else
system( "clear" );
#endif
ثم لدي مجموعة من البيانات printf إلى تحديث الحالة.ما أود فقط إعادة تعيين screenpointer إلى 0,0 حتى أستطيع فقط ثم تراكب بلدي printfs.أنا أفضل تجنب تجميع المزيد من امتداد خصوصا أنا الترميز 2 نظام التشغيل مختلفة'.
المحلول 2
يبدو أنني قد وجدت ويندوز طريقة محددة للقيام بذلك SetConsoleCursorPosition
تسلسل هروب Ansi \033[0;0min منذ لينكس فقط printf ذلك إلى وحدة التحكم.
نصائح أخرى
على يونكس مثل منصات المعتاد طريقة للقيام بذلك هي باستخدام اللعنات المكتبة.
نعم ، على منصات يونيكس ، اللعنات (أو سأركع هذه الأيام) هو الطريق للذهاب.وهناك الإصدارات التي تعمل تحت ويندوز ، لذلك يمكن أن تفعل ذلك بنفس الطريقة على كلا النظامين.
ويندوز - يمكنك استخدام ANSI أحرف الهروب.
http://www.lexipixel.com/news/star_dot_star/using_ansi_escape_sequences.htm
http://www.robvanderwoude.com/ansi.html
printf "\x[0;0H"
أنها تستخدم ليكون أن Ansi.sys الحاجة إلى تحميلها قبل أن تفعل هذا ، ولكن الأمر يستحق المحاولة.
إرشادات إضافة ANSI الدعم http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/UserTips/CommandPrompt/CommandInterpreterAnsiSupport.html ملاحظة:أن Ansi.sys يعمل فقط تحت command.com.لا يمكنك استخدامه مع cmd.exe