View Full Version : سوال: کاراکتر تصادفی و ذخیره و جست جو در فایل..
moh_mov
جمعه 11 دی 1388, 08:23 صبح
سلام...
راستش مشکلی دارم تو c!
می خوام یک کد 10 کاراکتری تصادفی تولید شه...گشتم چیزی به اون صورت پیدا نکردم....
مثل : A2F7DVHK39
و دوم اینه که تو یک فایل من مثلا این کد بالا رو می سازم و تو فایل ذخیره میکنم...و مثلا 5 کد رو می گذارم...حالا می خوام این کد رو توش پیدا کنم و بخونم چجوری؟:ناراحت::ناراحت:
Salar Ashgi
جمعه 11 دی 1388, 11:47 صبح
برای مورد اول ، الگوریتم های متفاوتی میتونن ذکر بشن ، بعنوان مثال تابع زیر این کار رو انجام میده :
#include <iostream>
#include <conio>
#include <stdlib>
void Random_string(int size){
char *a = new char[size];
int x;
int y;
for(int i=0;i<size;i++){
x = 65+rand()%26;
y = 48+rand()%10;
if(i%2==0)
a[i] = (char)(x);
else
a[i] = (char)(y);
}
for(int i=0;i<size;i++)
cout<<a[i];
cout<<endl;
}
//=============================
int main(){
srand(time(0));
int n;
cin>>n;
Random_string(n);
getch();
}
در مورد سوال دوم هم اگه به توابع خواندن و نوشتن در فایل آشنایی داشته باشید ، براحتی میتوانید این
کار را انجام دهید .
موفق باشید .
clover
جمعه 11 دی 1388, 12:09 عصر
سلام...
راستش مشکلی دارم تو c!
سلام
البته این کد ++C هست، اما امیدوارم بتونه کمک کنه:
// Store Random Stings in file
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
#include <stdlib.h>
#include<time.h>
char *randString(int);
int main()
{
const int strLength = 6;
const int strNumbers = 5;
char *strRandCode;
char *strInput = new char[strLength];
srand(time(0));
ofstream ofsout("test.dat", ios::trunc);
ifstream ifsin("test.dat", ios::in);
for (int counter = 0; counter < strNumbers; ++counter)
{
strRandCode = randString(strLength);
for (int i = 0; i < strLength; ++i)
ofsout.put(strRandCode[i]);
ofsout.put('\n');
delete[] strRandCode;
}
ofsout.flush();
if (ifsin)
while (ifsin.getline(strInput, '\n'))
cout << strInput << endl;
ofsout.close();
ifsin.close();
getch();
return 0;
}
char *randString(int strLength)
{
int counter = 0;
int rndChar;
char *rndString = new char[strLength];
--strLength;
while (counter < strLength)
{
rndChar = rand()% 43 + 48;
if (rndChar < 58 || rndChar > 64)
{
rndString[counter] = rndChar;
++counter;
}
}
rndString[counter] = '\0';
return rndString;
}
moh_mov
جمعه 11 دی 1388, 12:13 عصر
برای مورد اول ، الگوریتم های متفاوتی میتونن ذکر بشن ، بعنوان مثال تابع زیر این کار رو انجام میده :
.
ممنون....ولی آیا این کد تلفیق عدد و حروف میده؟
Salar Ashgi
جمعه 11 دی 1388, 12:22 عصر
ممنون....ولی آیا این کد تلفیق عدد و حروف میده؟
این کد همیشه رشته های تصادفی متشکل از ارقام و حروف بزرگ رو تولید میکنه .
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.