PDA

View Full Version : راهنمایی برای رفع مشکل برنامه



soonami
جمعه 10 آبان 1392, 12:37 عصر
سلام دوستان اشکال برنامه زیر چیست به ظاهر که باید کار کنه وقتی اجرا میکنم وجمله رو مینویسم اینتر میزنم هنگ میکنه برنامه



#include<iostream.h>
int main()
{
char ch;
int tw=0,tk=0;


cout<<"\nplz enter text";
cin>>ch;
while(ch!='\r')
{
tw ++;

if(ch== ' ' )
{
tk ++;
}
}
cout<<"\n tw ="<<tw<<"\n tk="<<tk;

}

storm_saeed
جمعه 10 آبان 1392, 13:21 عصر
#include<iostream>
int main()
{
char ch;
int tw=0,tk=0;


std::cout<<"\nplz enter text\n";

while(ch!='masalan x')
{
std::cin>>ch;
tw ++;

if(ch== ' ' )
{
tk ++;
}
}
std:: cout<<"\n tw ="<<tw<<"\n tk="<<tk;

}

soonami
جمعه 10 آبان 1392, 13:39 عصر
الان مشکلش کجا بود ؟؟؟ من میخوام اینتر زد ....

من نمیدونم std ::

چی کار کنه نباید ازش استفاده هم کنم

soonami
جمعه 10 آبان 1392, 15:24 عصر
کسی نیست کمک کنه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

aminsaeedi
جمعه 10 آبان 1392, 15:46 عصر
دستور
std::
که قبل از دستور دریافت ورودی و چاپ خروجی اومده خیلی چیز مهمی نیست

بسته به نرم افزار مورد استفاده شما متغیر هست
اگر از دستور
using namespace std;
قبل از تابع main استفاده کنید به std نیاز ندارید
برخی نرم افزار ها هم به دو کد بالا نیاز ندارند و برنامه شما را اجرا می کنند

soonami
جمعه 10 آبان 1392, 15:53 عصر
دوست عزیز الان مهم اینه که این کدی که من نوشتم اشکالش کجا هست

مشکلش کجا چرا اجرا نمیشه همه چی که درسته
__________________________________________________ ________________

ممنون از راهنمایی تون ولی نمی خوام از Std استفاده کنم

________________________________________

aminsaeedi
جمعه 10 آبان 1392, 16:17 عصر
#include<iostream>
int main()
{
char ch;
int tw=0,tk=0;


std::cout<<"\nplz enter text\n";

while(ch!='masalan x')
{
std::cin>>ch;
tw ++;

if(ch== ' ' )
{
tk ++;
}
}
std:: cout<<"\n tw ="<<tw<<"\n tk="<<tk;

}


شما به این برنامه دقت کردید که چه فرقی با برنامه شما داره به جز دستور std

در ضمن الان برنامه شما اجرا میشه و اتفاقی نمیافته یا کلا اجرا نمیشه؟

soonami
جمعه 10 آبان 1392, 16:23 عصر
برنامه اجرا میشه زمانی که شما جمله را وارد میکنید اینتر میزنید برنامه هنگ میکند
در صورتی که نباید بکند
به جز

soonami
جمعه 10 آبان 1392, 16:25 عصر
برنامه اجرا میشه زمانی که شما متن وارد میکنید و اینتر میزنید برنامه هنگ میکنه

برنامه ایشون به نظر من مشکل داره

دستور داخل while نگاه کنید .....

خوب cin بعد وایل انجام دادن با یه بررسی ظاهری میبینید برنامه من درست انجام میشه

اگر اینتر وارد نشد تعداد حرف من بهش اضافه کن وزمانی که فاصله استفاده شد تعداد کلمه من رو ....

aminsaeedi
جمعه 10 آبان 1392, 16:31 عصر
اتفاقا برنامه ایشون درسته چون دستور while تا زمانی اجرا میشه که شرط روبروش درست نباشه به همین دلیل از حلقه بیرون نمیاد که بخواد دوباره دستور cin شما رو بخونه

و اینکه دوباره برنامه خودتون رو توضیح بدید فکر کنم منطقتون اشتباه باشه (خط آخر توضیح کار برنامه هست دیگه؟؟؟؟)

soonami
جمعه 10 آبان 1392, 16:35 عصر
برنامه من چرا اشتباهه ؟؟؟

برنامه ایشون تست کردم کار نمی کنه

من میگم تا زمانی که اینتر نزده تو وایلم

omidshaman
جمعه 10 آبان 1392, 16:59 عصر
#include<iostream>
using namespace std;
int main()
{
cout<<"\nplz enter text";
string str;
int tw=0,tk=0;
getline(cin,str);
for(int i=0;i<str.size();i++)
{
tw++;
if(str[i]==' ')
tk++;
}
cout<<"\n tw ="<<tw<<"\n tk="<<tk;

}

A_2006
جمعه 10 آبان 1392, 17:03 عصر
دلیل هنگ بعد از enter اینه که شما باید cin رو داخل حلقه هم بنویسید . چون شما یک بار cin رو نوشتید . و نتیجه حلقه همیشه برابر ! میشه

soonami
جمعه 10 آبان 1392, 17:21 عصر
یعنی برای بر طرف کردنش کافی cin بیارم داخل حلقه ؟؟؟؟؟؟؟

aminsaeedi
جمعه 10 آبان 1392, 17:33 عصر
با توجه به چیزی که من از توضیح شما در مورد برنامه خوندم به نظرم به جز تغییر در قسمتی که خودتون نوشتید باید از یک else برای if داخل حلقه استفاده کنید چون متغیر tw با هر بار اجرای حلقه یک واحد اضافه میشه که فکر نکنم این همان برنامه مدنظر شما باشه درسته؟؟؟