ভিজুয়াল স্টুডিও 2010 এ কনসোলের আউটপুটটি দেখছেন?


163

আমি কিছু আউটপুট ( Console.WriteLine("...");) দিয়ে একটি সাধারণ সি # প্রোগ্রাম লিখছি । সমস্যাটি হচ্ছে, প্রতিবার এটি চালানোর পরে, আমি আউটপুট উইন্ডোটিতে প্রোগ্রামটির আউটপুট দেখতে পাচ্ছি না।

"প্রোগ্রাম আউটপুট" ট্যাগটি ইতিমধ্যে চেক করা আছে, এবং আমি ইতিমধ্যে মধ্যবর্তী উইন্ডোতে সমস্ত আউটপুট পুনঃনির্দেশিত করেছি তবে কোনও ফলসই হয়নি।

আমি কীভাবে প্রোগ্রামটির আউটপুট দেখতে সক্ষম করব?

আমি মনে করি না যে সমস্যাটি আমার কোডের সাথে রয়েছে। আমি একটি সাধারণ প্রোগ্রাম চালানোর চেষ্টা করেছি যা কেবল স্ট্রিংয়ের আউটপুট দেয় এবং "আলা হ্যালো ওয়ার্ল্ড" পাঠ করে এবং আমি এখনও কোনও আউটপুট দেখতে অক্ষম। সমস্যাটি হয় আমার সাথে ভুল জায়গায় আউটপুট খুঁজতে বা ভিজ্যুয়াল স্টুডিওতে অভিনয় করে with

debug.writeপদ্ধতি এছাড়াও কাজ করে না।

ব্যবহার করে debug.Write, এটি সমস্ত কাজ করে, যদিও এটি আগে হয়নি। আমার পুনরায় আরম্ভ করার আগেই আমার সাথে কিছু ছড়িয়ে পড়েছে বা আমার এখন কিছুটা বিরতি নেওয়া দরকার, এখনই এটি বেশ ভাল। সহায়ক মন্তব্যগুলির জন্য সকলকে ধন্যবাদ =)


7
ভিজ্যুয়াল স্টুডিও আপনার কনসোল উইন্ডোটি coveringেকে দিচ্ছে। এটি আপনার অন্য মনিটরে সরান।
হান্স প্যাস্যান্ট

উত্তর:


195

আপনি আউটপুট উইন্ডোতে বার্তা লিখতে System.Diagnostics.Debug.Writeবা System.Runtime.InteropServicesপদ্ধতিটি ব্যবহার করতে পারেন ।


10
System.Diagnostics.Debug.Writ (যদি
ওপিতে

4
আহ সত্য, আমি নিয়ন্ত্রণ + পিরিয়ডের জন্য কেবলমাত্র অভ্যস্ত ছিলাম :)
রিচার্ড অ্যাডনামস

জোনস্কা: আমার খেলার একটি নাম রয়েছে এবং আমি কেন কনসোল.উইটলাইন ব্যবহার করতে পারি, আমি চাই আমার প্রোগ্রামটি কনসোলটিতে কেবল টেস্টিং কারণেই লিখতে পারে ??
r3x

2
আপনার অ্যাপ্লিকেশনটি যদি কনসোল অ্যাপ্লিকেশন হয় তবে আপনি কনসোল উইন্ডোতে মুদ্রণের জন্য কনসোল.উইটলাইন ব্যবহার করতে পারেন বা আপনি যদি উইন্ডোজ ফর্ম অ্যাপ্লিকেশন হন তবে আপনি ডিবাগ.উইরাইট ব্যবহার করতে পারেন। অবিট
রিচার্ড

1
আকর্ষণীয় এটি জানত না, এবং হ্যাঁ আমার অ্যাপটি একটি উইন্ডোজ ফর্ম অ্যাপ্লিকেশন, তবে আমি কোনও ডিবাগ ব্যবহার করার চেষ্টা করিনি W রাইটিং পদ্ধতি একই সমস্যা, এটি সংকলন করে এবং সমস্তই
আশ্চর্যজনক

50

এখানে কয়েকটি জিনিস যাচাই করার জন্য রয়েছে:

  1. কারণ console.Write/WriteLineআপনার অ্যাপ্লিকেশনটি অবশ্যই কনসোল অ্যাপ্লিকেশন হতে হবে। (সলিউশন এক্সপ্লোরারে প্রকল্পটি ডান ক্লিক করুন, বৈশিষ্ট্যগুলি নির্বাচন করুন এবং অ্যাপ্লিকেশন ট্যাবে " আউটপুট ধরণ " কম্বোটি দেখুন - " কনসোল অ্যাপ্লিকেশন " হওয়া উচিত (দ্রষ্টব্য, আপনার যদি সত্যিই উইন্ডোজ অ্যাপ্লিকেশন বা শ্রেণীর পাঠাগার দরকার হয় তবে ডন এটি পাওয়ার জন্য এটি কনসোল অ্যাপে পরিবর্তন করবেন না Console.WriteLine)।

  2. আপনি ব্যবহার করতে পারে System.Diagnostics.Debug.WriteLine(বনাম আউটপুট উইন্ডো পেয়েছিলাম দেখানোর জন্য আউটপুট উইন্ডোতে লিখতে দেখুন | আউটপুট ) নোট যে এই লিখেছে শুধুমাত্র একটি বিল্ড যেখানে ডিবাগ শর্তসাপেক্ষ ডিফল্ট দ্বারা সংজ্ঞায়িত করা হয় (ঘটবে, ডিবাগ এই সংজ্ঞায়িত তৈরী করে, এবং রিলিজ বিল্ড না)

  3. আপনি System.Diagnostics.Trace.Writelineনন-ডিবাগ বিল্ডগুলিতে কনফিগারযোগ্য "শ্রোতাদের" লিখতে সক্ষম হতে চাইলে আপনি ব্যবহার করতে পারেন । (ডিফল্টরূপে, এটি ভিজ্যুয়াল স্টুডিওতে আউটপুট উইন্ডোতে ঠিক লিখেছে Debug.Writeline)


2
আমি আমার আউটপুটটি দেখছি না, তবে তখন বুঝতে পেরেছি যে প্রোগ্রামটি সিআরটিএল + শিফট + এফ 5 এর পরিবর্তে ডিবাগ মোডে (এফ 5) চালাতে হবে। ধন্যবাদ!
ট্র্যাভিস হিটার

সিস্টেম.ডায়াগনস্টিক্স.ট্রেস.আর্টলাইন যদিও কাজ করছে বলে মনে হচ্ছে না, এর জন্য আমাকে কনফিগার করার দরকার অন্য কিছু আছে কি?
ট্র্যাভিস হিটার

1
«1» - মিথ্যা বিবৃতি। মনো অ্যাপ্লিকেশনগুলির জন্য আউটপুট জরিমানা দেখায়। «2» - ofc। সমস্যাটি হ'ল পদ্ধতিটি টার্মিনালেও আউটপুট দেয় না। সুতরাং পিসিতে আইডিই ছাড়া কোনও অ্যাপ ডিবাগ করতে পারবেন না।
হাই-এঞ্জেল

34

Console.Read();আপনার প্রোগ্রামের শেষে একটি যুক্ত করুন । এটি অ্যাপ্লিকেশনটি বন্ধ হতে বাধা দেবে এবং আপনি এর ফলাফলটি সেভাবে দেখতে পাবেন।

এটি একটি কনসোল অ্যাপ্লিকেশন যা আমি সবেমাত্র খনন করেছি যা প্রক্রিয়াজাতকরণের পরে কিন্তু প্রস্থান করার আগে থামবে:

class Program
{
    static void Main(string[] args)
    {
        DummyObjectList dol = new DummyObjectList(2);
        dol.Add(new DummyObject("test1", (Decimal)25.36));
        dol.Add(new DummyObject("test2", (Decimal)0.698));
        XmlSerializer dolxs = new XmlSerializer(typeof(DummyObjectList));
        dolxs.Serialize(Console.Out, dol);

        Console.WriteLine(string.Empty);
        Console.WriteLine(string.Empty);

        List<DummyObject> dolist = new List<DummyObject>(2);
        dolist.Add(new DummyObject("test1", (Decimal)25.36));
        dolist.Add(new DummyObject("test2", (Decimal)0.698));
        XmlSerializer dolistxs = new XmlSerializer(typeof(List<DummyObject>));
        dolistxs.Serialize(Console.Out, dolist);
        Console.Read(); //  <--- Right here
    }
}

বিকল্পভাবে, আপনি কেবল সর্বশেষ লাইনে একটি ব্রেকপয়েন্ট যোগ করতে পারেন।


2
কনসোল.আরেডলাইন পাশাপাশি কাজ করে আপনাকে রিডের জন্য যেখানে কোনও স্ট্যান্ডার্ড কী লাগে তেমন চালিয়ে যেতে হবে hit
রিচার্ড অ্যাডানামস

এটি একটি উইন্ডোজ ফর্ম অ্যাপ্লিকেশন, এবং ডিবাগ.ওরাইট বা কনসোল.রাইটলাইন পদ্ধতিটি কাজ করছে বলে মনে হচ্ছে
r3x

হ্যাঁ, আপনি কেন উইন্ডোজ ফর্ম অ্যাপ্লিকেশন থেকে কনসোলে আউটপুট দিচ্ছেন? আমি পরিবর্তে কোনও ফর্ম বা ডায়ালবক্সে আউটপুট দেওয়ার পরামর্শ দিচ্ছি। বা একটি কনসোল অ্যাপ্লিকেশন তৈরি করুন ...
ভিনসেন্ট ভ্যাঙ্কালবার্গ

হ্যাঁ যা ইতিমধ্যে আমার দিকে ইঙ্গিত করা হয়েছিল, এটি আমার পক্ষ থেকে একটি বোকা ভুল, এখনও মাথা আপ করার জন্য ধন্যবাদ =)
r3x

কনসোল.আরড () কনসোল উইন্ডোটিকে ফোকাস পেতে দেয় এবং তাই ভিএস এর সামনে উপস্থিত হয় causes আপনি যদি কনসোলের পরে কেবল ব্রেক পয়েন্ট স্থাপন করেন simply
নাইজেল

21

পরিবর্তে প্রোগ্রামটি চালানোর জন্য Ctrl+ টিপুন ।F5F5


1
Ctrl + F5 আপনাকে ডিবাগ না করে অ্যাপ্লিকেশন শুরু করে আউটপুট উইন্ডোতে কিছুই দেখতে পাবেন না।
রিচার্ড অ্যাডানামস

6
এটি আমার পক্ষে কাজ করেছিল; আমি কেবল দেখতে চেয়েছিলাম যে প্রোগ্রামটি কী আউটপুট করছে, কনসোল আউটপুটগুলির কোনওটিই প্রদর্শিত হচ্ছে না। এটি চলার পরে কনসোল উইন্ডোটি খোলা রাখার ফলে এটি আউটপুটটি দেখতে পেত।
davenpcj

+1, এটি হ'ল যদি আপনি আসলে ডিবাগ করতে না চান (কনসোল দেখায়, এবং আউটপুটটি পড়তে দেয়)।
mlvljr

8

System.Diagnostics.Debug.WriteLine()কাজ করবে, তবে আপনাকে আউটপুটটির জন্য সঠিক জায়গায় সন্ধান করতে হবে। মেনু বারে ভিজ্যুয়াল স্টুডিও 2010-এ, ডিবাগ -> উইন্ডোজ -> আউটপুট ক্লিক করুন । এখন, আপনার ত্রুটি তালিকার পাশের ডকড পর্দার নীচে, একটি আউটপুট ট্যাব থাকা উচিত। এটিতে ক্লিক করুন এবং এটি ড্রপডাউন তালিকার ডিবাগ স্ট্রিম থেকে আউটপুট দেখাচ্ছে তা ডাবল পরীক্ষা করুন।

পিএস: আমি মনে করি আউটপুট উইন্ডোটি একটি নতুন ইনস্টলতে দেখায়, তবে আমি মনে করতে পারি না। যদি তা না হয় বা আপনি যদি এটি দুর্ঘটনাক্রমে বন্ধ করে দেন তবে এই নির্দেশাবলী অনুসরণ করুন।


0

আপনার উইন্ডো কনসোলটি খোলা রাখতে এবং স্ট্যান্ডার্ড আউটপুট স্ট্রিম কোট-এর পরিবর্তে অন্য আউটপুট পদ্ধতি ব্যবহার না করার জন্য আপনার প্রকল্পের নাম -> বৈশিষ্ট্য -> লিংক -> সিস্টেম যান।

সেখানে উপস্থিত হয়ে সাবসাইম ট্যাবটি নির্বাচন করুন এবং কনসোলটি চিহ্নিত করুন (/ সাবস্কিস্টেম: কনসোল)। আপনি এটি সম্পন্ন করার পরে, আপনি যখনই Ctrl + F5 (ডিবাগিং ছাড়াই শুরু করুন) সংকলন করতে চান এবং আপনার কনসোলটি উন্মুক্ত থাকবে। :)


আমি মনে করি এটি প্রশ্নে সি # তে নয়, সি ++ এর ক্ষেত্রে প্রযোজ্য।
দিমিত্রি ফেদোরকভ

0

আমি কোনও কারণে এই ঘন ঘন দৌড়েছি এবং কেন এই সমাধানটির উল্লেখ করা হয়নি তা আমি বুঝতে পারি না:

ভিউআউটপুট ক্লিক করুন (অথবা কেবল Ctrlডাব্লু> ও ও ধরে রাখুন )

কনসোল আউটপুট প্রদর্শিত হবে যেখানে আপনার ত্রুটি তালিকা , স্থানীয় এবং ওয়াচ উইন্ডো রয়েছে।

দ্রষ্টব্য: আমি ভিজ্যুয়াল স্টুডিও 2015 ব্যবহার করছি।


আপনি যে আউটপুট উইন্ডোটির উল্লেখ করেছেন তা দেখে মনে হচ্ছে এটি ডিবাগার দ্বারা উত্পন্ন হয়েছে কারণ এতে অ্যাসেম্বলিগুলি লোড হচ্ছে, থ্রেডগুলি শুরু হচ্ছে এবং এসটেটেরা বন্ধ হবে lots এটি কনসোল আউটপুট থেকে আলাদা।
পিটারভেরমন্ট

0

ভিজ্যুয়াল স্টুডিও নিজে থেকেই কনসোল উইন্ডোটি coveringেকে রাখে, ভিজুয়াল স্টুডিও উইন্ডোটি একে অপরের উপরে আঁকানো ছোট করার চেষ্টা করুন।


-1

প্রোগ্রাম.সি তে, এর মধ্যে:

static int Main(string[] agrs)
{

এবং আপনার কোড বাকী, যোগ করুন:

#if DEBUG
    int rtn = Main2(args);
    Console.WriteLine("return " + rtn);
    Console.WriteLine("ENTER to continue.");
    Console.Read();
    return rtn;
}

static int Main2(string[] args)
{
#endif

আপনার কোড কীভাবে সমস্যার সমাধান করে তা দয়া করে একটি বিবরণ যুক্ত করুন।
কোপাখিলার

-4

আপনি 2 টি ছোট পদ্ধতি তৈরি করতে পারেন, একটি যা প্রোগ্রামের শুরুতে বলা যেতে পারে, অন্যটি শেষে। আপনি কনসোলও ব্যবহার করতে পারেন। পড়ুন (), যাতে প্রোগ্রামটি শেষ লেখার লাইনের পরে বন্ধ না হয়।

আপনার কার্যকারিতা কখন কার্যকর হয়ে যায় এবং প্রোগ্রামের উপস্থিতি কখন হয় তা আপনি এইভাবে নির্ধারণ করতে পারেন।

startProgram()
{
     Console.WriteLine("-------Program starts--------");
     Console.Read();
}


endProgram()
{
    Console.WriteLine("-------Program Ends--------");
    Console.Read();
}

কনসোল থেকে এই উত্তর কীভাবে নতুন তথ্য এনেছে তা আমি দেখতে পাচ্ছি না e
ফোর্স ম্যাজিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.