PDA

View Full Version : مشکل در ساخت پوشه



hamedre81
چهارشنبه 25 اردیبهشت 1392, 00:14 صبح
سلام دوستان

چرا کد زیر درست کار نمی کنه؟


for (int i = 0; i < 80; i++)
mkdir( "N:\\Folder " + i );


مگه کد بالا نباید شمارنده رو به اسم پچسبونه بعد اون پوشه رو بسازه؟

developing
چهارشنبه 25 اردیبهشت 1392, 01:03 صبح
با سلام

نه در واقع شما نمی تونید در توابعی که با رشته هایی مثل *char کار می کنن اونها رو به راحتی جمع کنید

باید برای جمع این رشته ها از توابع strcpy , strcat استفاده بشه.

کاری که شما می خواید انجام بدید به شکل زیر می شه.



#include <dir.h>
#include <stdlib.h>
void main() {
char* s ;
char n[10];
for (int i = 0; i < 10; i++)
{
strcpy(s , "N:\\Folder");
itoa(i, n , 10);
strcat(s, n);
mkdir(s);
}
}

hamedre81
چهارشنبه 25 اردیبهشت 1392, 10:59 صبح
با سلام

نه در واقع شما نمی تونید در توابعی که با رشته هایی مثل *char کار می کنن اونها رو به راحتی جمع کنید

باید برای جمع این رشته ها از توابع strcpy , strcat استفاده بشه.

کاری که شما می خواید انجام بدید به شکل زیر می شه.



#include <dir.h>
#include <stdlib.h>
void main() {
char* s ;
char n[10];
for (int i = 0; i < 10; i++)
{
strcpy(s , "N:\\Folder");
itoa(i, n , 10);
strcat(s, n);
mkdir(s);
}
}

سلام
ممنون از کمکتون
اما چند تا سوال برام پیش اومده


چرا به جای دستور
strcpy(s , "N:\\Folder");
از دستور

s ="N:\\Folder ";

استفاده میکنم , با اینکه مقدار s رو در آخر NULL می کنم اما بعد از مقدار دهی مجدد باز مقدار قبلی باقی خواهد ماند وپوشه ها به صورت folder 0 , folder 01 , folder 012 , folder 01234 درست می شن؟


s="N:\\Folder ";
itoa(i,n,10);
strcat (s,n);
mkdir(s);

s=NULL;

سوال دوم
چرا در دستور تبدیل int به رشته پارامتر سوم 10 قرار داده شده؟


سوال آخر
کد که شما داده بودید در خط

strcpy(s ,"N:\\Folder ");
برنامه متوقف می شد

اما با تغییر
char* s ;
به
char s[10];

برنامه درست اجرا می شه؟

باز هم ممنون