A_Salimi
دوشنبه 02 اردیبهشت 1387, 10:41 صبح
سلام
با یک مشکل مواجه شدم که دلیلشو نمیدونم !!! من یک مقدار CString رو به عدد تبدیل میکنم بعد یک واحد بهش اضافه میکنم و دوباره برمیگردونمش به CString . اما نمیدونم چرا وقتی به 10 میرسه در اضافه شدن بعدی به جای 11 دوباره یک تولید میشه ؟ یعنی در زمان تبدیل به CString عدد 10 به a تبدیل میشه (کد زیر رو در حالت دیباگ ببینید) .
// define 8 as string
CString a=_T("8");
char ch[10];
char h[10];
//for loop for view changes
for(int i=1;i<5;i++){
//convert cstring to char*
sprintf(ch, "%s",a);
//convert string to integer
int counter=atoi(ch);
//increment
counter ++;
//convert integer to char* and then convert to CString
CString b(itoa(counter,h,36));//when counter is 10 b value is “a”!!
a=b;
}
لطفا دلیلشو بگید و بگید که چطور میتونم اعداد بزرگتر از 9 رو تولید کنم ؟
با تشکر
با یک مشکل مواجه شدم که دلیلشو نمیدونم !!! من یک مقدار CString رو به عدد تبدیل میکنم بعد یک واحد بهش اضافه میکنم و دوباره برمیگردونمش به CString . اما نمیدونم چرا وقتی به 10 میرسه در اضافه شدن بعدی به جای 11 دوباره یک تولید میشه ؟ یعنی در زمان تبدیل به CString عدد 10 به a تبدیل میشه (کد زیر رو در حالت دیباگ ببینید) .
// define 8 as string
CString a=_T("8");
char ch[10];
char h[10];
//for loop for view changes
for(int i=1;i<5;i++){
//convert cstring to char*
sprintf(ch, "%s",a);
//convert string to integer
int counter=atoi(ch);
//increment
counter ++;
//convert integer to char* and then convert to CString
CString b(itoa(counter,h,36));//when counter is 10 b value is “a”!!
a=b;
}
لطفا دلیلشو بگید و بگید که چطور میتونم اعداد بزرگتر از 9 رو تولید کنم ؟
با تشکر