View Full Version : سوال: چرا این برنامه جواب نميده؟
ميثم طاهري
شنبه 07 دی 1387, 18:29 عصر
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
#include<stdlib.h>
void code(char*input,char*output,char start);
void decode(char*input,char*output,char start);
int main(int argc,char *argv[])
{ clrscr();
if (argc !=5) {
printf("usage:input output encode/decode offset\n");
getch();
exit(0);
}
if(!isalpha(*argv[4])){
printf("start leter must be alphabetical chracter\n");
exit(0);
}
if (toupper(*argv[3])=='E')
code(argv[1],argv[2],*argv[4]);
else
decode(argv[1],argv[2],*argv[4]);
return 0;
}
void code(char *input,char *output,char start)
{ int ch;
FILE *fp1, *fp2;
if((fp1=fopen("C:test1","r"))==0){
printf("cannot open input file.\n");
exit(0);
}
if((fp2=fopen("C:test2","wt"))==0){
printf("cannot open output file.\n");
exit(0);
}
start=tolower(start);
start=start-'a';
ch=getc(fp1);
while(!feof(fp1)){
ch=tolower(ch);
if(isalpha(ch)){
ch+=start;
if(ch>'z')
ch-=26;
}
putc(ch,fp2);
ch=getc(fp1);
}
fcloseall();
}//end of code
void decode(char*input,char*output,char start)
{int ch;
FILE *fp1,*fp2;
if((fp1=fopen("C:test1","r"))==0){
printf("cannot open input file.\n");
exit(0);
}
if((fp2=fopen("C:test2","w"))==0){
printf("cannot open output file.\n");
exit(0);
}
start=tolower(start);
start=start-'a';
ch=tolower(getc(fp1));
while(!feof(fp1)){
if(isalpha(ch)){
ch-=start;
if(ch < 'a')
ch+=26;
}
}
fcloseall();
}
Saeed_m_Farid
شنبه 07 دی 1387, 22:34 عصر
عليكم السلام!
آقا ميثم شما اكثر پستهايي كه دادين همينطوري copy/past بوده، فقط خودتو در نظر نگير ممكنه يكي ديگه هم همين مشكل رو داشته باشه؛ اول بگين مشكلتون تو كد چيه يا اصلا هدف برنامه چيه و ...
به هرصورت؛ اونطوري كه من ديدم يه برنامه سي بيلدر داري كه واسه كد و دكد كردن ورودي هاي برنامه كنسولت داره از دو تا فايل (كه متاسفانه با بي حوصلگي اونا رو هم آپلود نكردي!) تو درايو C استفاده ميكنه...
اولا مسير فايلهات درست نيست؛ ثانيا بگو كجاي برنامه مشكل داري؟ من كه فكر ميكنم شما پارامتر ورودي به برنامه ات پاس نميدي چون اگه trace ميكردي متوجه ميشدي فايلها رو نميتونه بخونه : براي اضافه كردن پارامتر واسه trace بريد اينجا : Run->parameters و اونجا دقيقا بايد 5 تا پارامتر بدين چون روال برنامه تون اينه، بعدش ميتوني trace كني.
//---------------------------------------------------------------------------
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
#include<stdlib.h>
//---------------------------------------------------------------------------
void code(char*input,char*output,char start);
void decode(char*input,char*output,char start);
int main(int argc, char* argv[])
{
clrscr();
if (argc !=5) {
printf("usage:input output encode/decode offset\n");
getch();
exit(0);
}
if(!isalpha(*argv[4])){
printf("start leter must be alphabetical chracter\n");
exit(0);
}
if (toupper(*argv[3])=='E')
code(argv[1],argv[2],*argv[4]);
else
decode(argv[1],argv[2],*argv[4]);
return 0;
}
//---------------------------------------------------------------------------
void code(char *input,char *output,char start)
{
int ch;
FILE *fp1, *fp2;
if((fp1=fopen("C:\\test1","r"))==0){
printf("cannot open input file.\n");
exit(0);
}
if((fp2=fopen("C:\\test2","wt"))==0){
printf("cannot open output file.\n");
exit(0);
}
start=tolower(start);
start=start-'a';
ch=getc(fp1);
while(!feof(fp1))
{
ch=tolower(ch);
if(isalpha(ch))
{
ch+=start;
if(ch>'z')
ch-=26;
}
putc(ch,fp2);
ch=getc(fp1);
}
fcloseall();
}//end of code
//---------------------------------------------------------------------------
void decode(char*input,char*output,char start)
{
int ch;
FILE *fp1,*fp2;
if((fp1=fopen("C:\\test1","r"))==0){
printf("cannot open input file.\n");
exit(0);
}
if((fp2=fopen("C:\\test2","w"))==0){
printf("cannot open output file.\n");
exit(0);
}
start=tolower(start);
start=start-'a';
ch=tolower(getc(fp1));
while(!feof(fp1))
{
if(isalpha(ch))
{
ch-=start;
if(ch < 'a')
ch+=26;
}
}
fcloseall();
}
//---------------------------------------------------------------------------
ميثم طاهري
شنبه 07 دی 1387, 22:55 عصر
مگه من فارسي ننوشتم؟! :متفکر: :متعجب:
من مي گويم كه جناب آقاي ميثم طاهري وقتي ميخواهيد روي موضوع جديد با ماوس كليك كنيد و مطلبي را براي رفع مشكلتان با ما در ميان بگذاريد لطفا آن مطلب را بصورت واضح توضيح دهيد و هم چنين بگوييد كه كجاي برنامه اي كه اينجا قرار داده ايد مشكل داريد؟ تا ما هم بتوانيم به كمك شما بشتابيم...
آيا توانستم منظورم را برسانم؟ ممنون.
ضمنا اين كدي را كه من در پست قبل گذاردم در برنامه تان جايگزين نماييد تا كار كند.
ممنون از اين كدي كه قرار داديد ولي يك erorداد كه vcl.hنميتونه بازكنه مشكل چيه؟بعد هشدار داده كه input output file استفاده نشده
Saeed_m_Farid
شنبه 07 دی 1387, 22:59 عصر
من با فرض اينكه اين برنامه رو شما نوشتين اينطوري پست دادم؛
trace يعني اجراي خط به خط برنامه و دو نوع Traceداريم يكيش داخل توابع ميره و ديگري فقط تابع رو اجرا ميكنه و ميره خط بعد.
كنسول هم به برنامه اي ميگن كه مثل خط فرمان اجرا ميشه يعني رابط كاربريش مثل DOS ميمونه.
پارامتر هم منظورم همون ورودي كنسول يا آرگومانه؛ ديگه اگه كمكي از دستم برمياد بگين ولي خواهشا پست كامل بدين و تاپيك اضافه هم ايجاد نكنيد، البته اگه فضولي تو كار مديراي سايت نباشه شما 10 تا تاپيك زدين همه جا همين موضوع رو مطح كردين، مطمئن باشين اگه جوابي باشه تو همون 1 تاپيكتون تو همون 1 تاپيكتون به اون ميرسيد.
به من نگفتيد كامپايلرتون چيه؟ يعني برنامه رو كجا اجرا ميكنيد؟ اگه Borland C++ Builder نيست اون خط vcl رو حذف كنيد...
موفق باشيد.
ميثم طاهري
شنبه 07 دی 1387, 23:03 عصر
من با فرض اينكه اين برنامه رو شما نوشتين اينطوري پست دادم؛
trace يعني اجراي خط به خط برنامه و دو نوع Traceداريم يكيش داخل توابع ميره و ديگري فقط تابع رو اجرا ميكنه و ميره خط بعد.
كنسول هم به برنامه اي ميگن كه مثل خط فرمان اجرا ميشه يعني رابط كاربريش مثل DOS ميمونه.
پارامتر هم منظورم همون ورودي كنسول يا آرگومانه؛ ديگه اگه كمكي از دستم برمياد بگين ولي خواهشا پست كامل بدين و تاپيك اضافه هم ايجاد نكنيد، البته اگه فضولي تو كار مديراي سايت نباشه شما 10 تا تاپيك زدين همه جا همين موضوع رو مطح كردين، مطمئن باشين اگه جوابي باشه تو همون 1 تاپيكتون تو همون 1 تاپيكتون به اون ميرسيد.
موفق باشيد.
چشم ديگه تاپيك با موضوع مشابه ايجاد نمي كنم
در ضمن جواب پست آخر رو اگه ميشه بديد
Nima_NF
یک شنبه 08 دی 1387, 00:19 صبح
دوست گرامی، به جای ارسال تاپیک های تکراری و همگی هم در مورد یک برنامه، مواردی را که دوستان از شما درخواست می کنند را انجام دهید و پست بی ارتباط با بحث ندهید، فعلا برخی از تاپیک های تکراری شما پاک می شود.
امیدوارم در دفعات بعد سوالات خود را درست، کامل و با عنوان مناسب بپرسید تا من ناچار به تغییر نام یا حذف آن نشوم.
در قوانین بخش مورد زیر ذکر شده:
تذکر 3 : کاربران جدید در هنگام ارسال سوال خود (مثلا در مورد خطایی که در برنامه ایجاد می شود) حتما موارد زیر را ذکر کنند تا سایر کاربران بتوانند به راحتی و بدون ارسال مجدد پاسخ شما را بدهند:
1- حتما نام کامپایلر مورد استفاده شما به همراه شماره نسخه آن بیان شود.
2- حتما پیام خطای کامپایلر نیز در کنار سوال قرار داده شود (در صورت طولانی بودن بخشی از آن)
از آنجایی که بسیاری از خطاها، معروف و ساده هستند به این شکل دیگر نیاز نیست برنامه توسط کاربران کامپایل شود تا خطای آن معلوم شود.
سوالات کلی و بدون ذکر اشکال حذف خواهند شد.
Saeed_m_Farid
یک شنبه 08 دی 1387, 00:19 صبح
در ضمن جواب پست آخر رو اگه ميشه بديد
پستهاي 2 و 7 ويرايش شدند.
ميثم طاهري
یک شنبه 08 دی 1387, 00:24 صبح
به من نگفتيد كامپايلرتون چيه؟ يعني برنامه رو كجا اجرا ميكنيد؟ اگه Borland C++ Builder نيست اون خط vcl رو حذف كنيد...
موفق باشيد.
با tc اجراش مي كنم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.