PDA

View Full Version : محدودیت چاپ!!!



modirmasool
سه شنبه 25 آبان 1389, 11:27 صبح
سلام دوستان
من توی ویژوال استادیو وقتی برنامه زیر رو مینویسم، به جای اینکه اعداد 1 تا 999 برام چاپ بشن، اعداد 701 تا 999 برام چاپ میشن:متعجب:!!! کلا امتحان که کردم فهمیدم بیشتر از 300 خط چاپ نمیشه! میشه راهنماییم کنین که چطوری تعداد خطوط چاپی رو افزایش بدم؟


#include "stdafx.h"
#include "iostream"
#include "conio.h"
using namespace std;

void main()
{
for (int k=1 ;k<1000;k++)
cout<<k<<"\n";
getch();

}

ممنون

r00tkit
سه شنبه 25 آبان 1389, 11:43 صبح
نخیر دوست عزیز چاپ می شه ولی شما نمی بینی برای اینکه اروم چاپ بشه وشما ببینی
کد زیر رو بنویس

:

#include "iostream"
#include "conio.h"
#include<Windows.h>
using namespace std;

void main()
{
for (int k=1 ;k<1000;k++)
{
cout<<k<<"\n";
Sleep(50);
}
getch();

}

modirmasool
سه شنبه 25 آبان 1389, 12:09 عصر
ممنون
منم میدونم چاپ میشه ولی بحثم سره اینه که میخوام همه رو با هم چاپ کنه! فرض کنین یه گزارش میخوایم بگیریم. من درست متوجه نمیشم چرا وقتی اسکرول وجود داره،چرا باز محدودیت در خطهای چاپی اتفاق میافته؟

r00tkit
سه شنبه 25 آبان 1389, 12:22 عصر
این کار نمی شه( لااقل من نمی دونم) اگه می خوای می تونی از فایل استفاده کنی

FastCode
سه شنبه 25 آبان 1389, 12:25 عصر
باید بافرسایز رو تغییر بدی.
کدش رو توی C++ بلد نیستم ولی اگر سرچ کنی پیدا میشه.

راه دوم که در واقع همون راه اوله:
اگر با reflector این کد رو باز کنی یه چیزایی دستگیرت میشه.
http://msdn.microsoft.com/en-us/library/system.console.bufferheight.aspx

modirmasool
سه شنبه 25 آبان 1389, 13:09 عصر
باید بافرسایز رو تغییر بدی.
کدش رو توی C++‎ بلد نیستم ولی اگر سرچ کنی پیدا میشه.

راه دوم که در واقع همون راه اوله:
اگر با reflector این کد رو باز کنی یه چیزایی دستگیرت میشه.
http://msdn.microsoft.com/en-us/library/system.console.bufferheight.aspx

ممنون
من تازه سی رو شروع کردم.:ناراحت: لطفا زیر دیپلم بگین:لبخند:

Salar Ashgi
سه شنبه 25 آبان 1389, 14:23 عصر
از قرار معلوم این مشکل فقط در چاپ کردن در سطر جدید بوجود میاد ، کد زیر تا حدی این اشکال رو برطرف میکنه :


#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
for(int i=1;i<=1000;i++)
cout<<i<<",";
getch();
}


موفق باشید ./

r00tkit
سه شنبه 25 آبان 1389, 16:40 عصر
باید بافرسایز رو تغییر بدی.
کدش رو توی C++‎‎ بلد نیستم ولی اگر سرچ کنی پیدا میشه.

راه دوم که در واقع همون راه اوله:
اگر با reflector این کد رو باز کنی یه چیزایی دستگیرت میشه.
http://msdn.microsoft.com/en-us/library/system.console.bufferheight.aspx


چی می گی برادر ؟ به reflector چه ربطی داره !! reflector کد های منیج رو نشون می ده نه چیزی که ان زیر داره انجام می شه

------
برو تو:
output console, Right click -> Properties -> Layout(tab) -> Screen buffer size.

بعد بافر رو زیاد کن من وقت ندارم الان ولی اگه شد کدش رو پیدا میکنم می گم بهت

sh4mid
سه شنبه 25 آبان 1389, 17:11 عصر
برو اینجا Console Functions (http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx)

FastCode
سه شنبه 25 آبان 1389, 18:15 عصر
چی می گی برادر ؟ به reflector چه ربطی داره !! reflector کد های منیج رو نشون می ده نه چیزی که ان زیر داره انجام می شه


ربطش اینه که من قبلاً یک بار اون کد رو مطالعه کردم و مطمئن هستم که انتهاش به Native ختم میشه.
UnsafeNativeCalls

Edit:
این یکی رو ندیده بودم:

من تازه سی رو شروع کردم. لطفا زیر دیپلم بگین
من هم هنوز نتونستم این کد رو توی C بنویسم ولی اولین بار از C تبدیل کردم به C#

modirmasool
سه شنبه 25 آبان 1389, 18:53 عصر
از قرار معلوم این مشکل فقط در چاپ کردن در سطر جدید بوجود میاد ، کد زیر تا حدی این اشکال رو برطرف میکنه :


#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
for(int i=1;i<=1000;i++)
cout<<i<<",";
getch();
}


موفق باشید ./


ممنون.
آقا سالار خوب صورت مسئله رو دور میزنین ها!:لبخند:
ببینین من که قصدم چاپ 1000 تا عدد نیست! راستش میخواستم 92 تا جواب مسئله ی 8 وزیر رو به صورت 92 تا جدول 8 در 8 روی صفحه نشون بدم که با این مشکل برخوردم!

r00tkit
سه شنبه 25 آبان 1389, 19:23 عصر
حالش رو ببر (یه وقت خالی گیر اوردم)



void main()
{
HANDLE ch=GetStdHandle(STD_OUTPUT_HANDLE);

CONSOLE_SCREEN_BUFFER_INFO sbi;
GetConsoleScreenBufferInfo(ch,&sbi);
if(sbi.dwSize.Y<1000)
{
COORD newsize;
newsize.X=sbi.dwSize.X;
newsize.Y=sbi.dwSize.Y+800;
SetConsoleScreenBufferSize(ch,newsize);

}
for (int k=1 ;k<1000;k++)
{
cout<<k<<endl;


}
getch();

}

modirmasool
سه شنبه 25 آبان 1389, 20:01 عصر
حالش رو ببر (یه وقت خالی گیر اوردم)



void main()
{
HANDLE ch=GetStdHandle(STD_OUTPUT_HANDLE);

CONSOLE_SCREEN_BUFFER_INFO sbi;
GetConsoleScreenBufferInfo(ch,&sbi);
if(sbi.dwSize.Y<1000)
{
COORD newsize;
newsize.X=sbi.dwSize.X;
newsize.Y=sbi.dwSize.Y+800;
SetConsoleScreenBufferSize(ch,newsize);

}
for (int k=1 ;k<1000;k++)
{
cout<<k<<endl;


}
getch();

}


:تشویق::تشویق::تشویق:
حالا چطوری باید ازش استفاده کنیم؟:لبخند:
من کپیش کردم کلی خطا گرفت!:گریه:

r00tkit
سه شنبه 25 آبان 1389, 20:12 عصر
چه خطایی ؟ برادر از چه کامپایلری استفاده می کنی ؟

فکر کنم windows.h رو include نکردی

Salar Ashgi
سه شنبه 25 آبان 1389, 20:14 عصر
آقا سالار خوب صورت مسئله رو دور میزنین ها!:لبخند:
ببینین من که قصدم چاپ 1000 تا عدد نیست! راستش میخواستم 92 تا جواب مسئله ی 8 وزیر رو به صورت 92 تا جدول 8 در 8 روی صفحه نشون بدم که با این مشکل برخوردم!
شما هم خوب لقمه آماده میخواین ها ... ما صورت مساله رو دور نزدیم ؛ شما مساله رو اشتباه مطرح کردید
و انتظار دارید پاسخ درستی دریافت کنید !؟ جواب ارسالی فقط روشی جهت حل سوالی که شما مطرح
کرده بودید ، بود ./

modirmasool
سه شنبه 25 آبان 1389, 20:31 عصر
چه خطایی ؟ برادر از چه کامپایلری استفاده می کنی ؟

فکر کنم windows.h رو include نکردی

ممنون درست شد:لبخند:



شما هم خوب لقمه آماده میخواین ها ... ما صورت مساله رو دور نزدیم ؛ شما مساله رو اشتباه مطرح کردید
و انتظار دارید پاسخ درستی دریافت کنید !؟ جواب ارسالی فقط روشی جهت حل سوالی که شما مطرح
کرده بودید ، بود ./

ما چاکر شما هم هستیم.:خجالت:
ولی خودمونیم ها لقمه آماده نبود! به علاوه این که عنوان سوال این جمله هستش:"محدودیت چاپ!!!" و داخل توضیحات مشکل هم این طوری نوشتم:
"سلام دوستان
من توی ویژوال استادیو وقتی برنامه زیر رو مینویسم، به جای اینکه اعداد 1 تا 999 برام چاپ بشن، اعداد 701 تا 999 برام چاپ میشن!!! کلا امتحان که کردم فهمیدم بیشتر از 300 خط چاپ نمیشه! میشه راهنماییم کنین که چطوری تعداد خطوط چاپی رو افزایش بدم؟"


در انتها از همه دوستان که وقت گذاشتن تشکر میکنم.




.

Salar Ashgi
سه شنبه 25 آبان 1389, 21:11 عصر
ولی خودمونیم ها لقمه آماده نبود! به علاوه این که عنوان سوال این جمله هستش:"محدودیت چاپ!!!" و داخل توضیحات مشکل هم این طوری نوشتم:
"سلام دوستان
من توی ویژوال استادیو وقتی برنامه زیر رو مینویسم، به جای اینکه اعداد 1 تا 999 برام چاپ بشن، اعداد 701 تا 999 برام چاپ میشن!!! کلا امتحان که کردم فهمیدم بیشتر از 300 خط چاپ نمیشه! میشه راهنماییم کنین که چطوری تعداد خطوط چاپی رو افزایش بدم؟"

فکر نکنم این مساله ای که شما مطرح کردید ، ارتباطی به مساله چند وزیر داشته باشه !!!

r00tkit
سه شنبه 25 آبان 1389, 21:15 عصر
بهتر نیست مسئله های فنی فقط مطرح بشه

و هر کس فقط در صورت داشتن جواب درست پست بده