...StacK...
سه شنبه 15 بهمن 1387, 02:04 صبح
سلام دوستان به کد زیر نگاه کنید:
// stack.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;//this is a program for test
int main(){
char word[80];
int x=1;
do
{
cin >>word;
if(*word) cout<<"\t\""<<word<<"\"\n";
cout<<"program is to crashing\n"<<endl;
cout<<word<<" ";
}while(x);
return 0;
}
من وقتی میخوام برنامه رو با استفاده از ctrl+z ببندم , برنامه شروع به طی کردن حلقه
بی نهایت میکنه و دیگه عملگر cin از ما درخواست ورودی نمیکنه و این حلقه با چاپ
پیام درون حلقه تا بی نهایت ادامه پیدا میکنه و تنها راه بستن برنامه به غیر از بستن پنجره
کنسول , استفاده از کلید break هست.!!!
================================================== ==
البته من اینجوری تصور میکنم ولی مطمئن نیستم:
وقتی من به جای ورودی از ctrl +z استفاده میکنم , کاراکتر NUL در ابتدای رشته قرار میگیره
پس در این صورت وقتی cin میبینه که کارکتر NUL در ابتدای رشته وجود داره ...تصور
میکنه که رشته ما به پایان رسیده , پس در این صورت طلب ورودی نمیکنه.
این تصور من درسته؟؟؟؟
================================================== ==
حالا وقتی کلید break رو فشار میدم چه اتفاقی میفته که برنامه بسته میشه؟؟؟
================================================== ==
// stack.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;//this is a program for test
int main(){
char word[80];
int x=1;
do
{
cin >>word;
if(*word) cout<<"\t\""<<word<<"\"\n";
cout<<"program is to crashing\n"<<endl;
cout<<word<<" ";
}while(x);
return 0;
}
من وقتی میخوام برنامه رو با استفاده از ctrl+z ببندم , برنامه شروع به طی کردن حلقه
بی نهایت میکنه و دیگه عملگر cin از ما درخواست ورودی نمیکنه و این حلقه با چاپ
پیام درون حلقه تا بی نهایت ادامه پیدا میکنه و تنها راه بستن برنامه به غیر از بستن پنجره
کنسول , استفاده از کلید break هست.!!!
================================================== ==
البته من اینجوری تصور میکنم ولی مطمئن نیستم:
وقتی من به جای ورودی از ctrl +z استفاده میکنم , کاراکتر NUL در ابتدای رشته قرار میگیره
پس در این صورت وقتی cin میبینه که کارکتر NUL در ابتدای رشته وجود داره ...تصور
میکنه که رشته ما به پایان رسیده , پس در این صورت طلب ورودی نمیکنه.
این تصور من درسته؟؟؟؟
================================================== ==
حالا وقتی کلید break رو فشار میدم چه اتفاقی میفته که برنامه بسته میشه؟؟؟
================================================== ==