إعادة تعيين الشاشة تشير إلى الجزء العلوي من الشاشة في نظام التشغيل Windows & Linux console

StackOverflow https://stackoverflow.com/questions/56324

  •  09-06-2019
  •  | 
  •  

سؤال

لدي القليل من الروتين الذي تعمل تحت لينكس و ويندوز مكتوب في 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top