PDA

نسخه کامل مشاهده نسخه کامل : خروجی فارسی در c



Asemooni_71
09-01-2013, 19:11
سلام
من باید یه برنامه بنویسم که اعداد رو بگیره و به حروف فارسی توی یک فایل html نمایش بده، اما نمیدونم چه طوری باید از یونیکد استفاده کنم و چه طوری اون رو در فایل html ذخیره کنم تو اینترنت هم گشتم اما چون خیلی مبتدیم سردرنیاوردم لطفا راهنماییم کنید

mahsa f
11-02-2013, 22:29
سلام.این متن برنامه ای هست که تو لازم داری.امیدوارم دیر نشده باشه,آخه من تازه سوالتو دیدم!سوالی داشتی بپرس...:n01:
#include <conio.h>
#include <stdio.h>
#include<string.h>




int main(int argc, char *argv[])
{
int n[100],x[99],s=0,i2=0,i,j,k,m=0;
printf("enter number:");
do
{
i2++;
n[i2]=getche();
}while(n[i2]!='\r');
i2--;
for(j=1;i2>=1;i2--)
{
x[j]=n[i2]-'0';
j++;
}
j--;

FILE *h;
h=fopen("f:\\m1.html","w");
fprintf(h,"<html>");
for(i=j;i>=1;i--)
{
if(s==1)
{
switch(x[i])
{
case 0:fprintf(h,"ده ");break;
case 1:fprintf(h,"یازد&#1607 ");break;
//yazdah
case 2:fprintf(h,"دوازد&#1607 ");break;
case 3:fprintf(h,"سیزد&#1607 ");break;
case 4:fprintf(h,"چهارد&#1607 ");break;
case 5:fprintf(h,"پانزده ");break;
case 6:fprintf(h,"شانزده ");break;
case 7:fprintf(h,"هفده ");break;
case 8:fprintf(h,"هجده ");break;
case 9:fprintf(h,"نوزده ");break;
}
s=0;
}
else
if(i%3==2)
{
switch(x[i])
{
case 0:fprintf(h,"");break;
case 1:s=1;break;
case 2:fprintf(h,"بیست ");break;
//bist
case 3:fprintf(h,"سی ");break;
case 4:fprintf(h,"چهل ");break;
case 5:fprintf(h,"پنجاه ");break;
case 6:fprintf(h,"شصت ");break;
case 7:fprintf(h,"هفتاد ");break;
case 8:fprintf(h,"هشتاد ");break;
case 9:fprintf(h,"نود ");break;
}
if(x[i-1]!=0&&x[i]!=0&&x[i]!=1)
if(i!=4 && i!=7 && i!=10 && i!=13 && i!=16 && (i+1)!=4 && (i+1)!=7 && (i+1)!=10 && (i+1)!=13 && (i+1)!=16)
fprintf(h," &#1608");
}
else
if(i%3==0)
{
switch(x[i])
{
case 0:fprintf(h,"");break;
case 1:fprintf(h,"صد ");break;
//sad
case 2:fprintf(h,"دویست ");break;
case 3:fprintf(h,"سیصد ");break;
case 4:fprintf(h,"چهارصد ");break;
case 5:fprintf(h,"پانصد ");break;
case 6:fprintf(h,"ششصد ");break;
case 7:fprintf(h,"هفتصد ");break;
case 8:fprintf(h,"هشتصد ");break;
case 9:fprintf(h,"نهصد ");break;

}
if(x[i-1]!=0&&x[i]!=0||x[i]!=0&&x[i-1]==0&&x[i-2]!=0)
fprintf(h," و ");
}
else
{
switch(x[i])
{
case 0:fprintf(h,"");break;
case 1:fprintf(h,"یک ");break;
//yek
case 2:fprintf(h,"دو ");break;
case 3:fprintf(h,"سه ");break;
case 4:fprintf(h,"چهار ");break;
case 5:fprintf(h,"پنج ");break;
case 6:fprintf(h,"شش ");break;
case 7:fprintf(h,"هفت ");break;
case 8:fprintf(h,"هشت ");break;
case 9:fprintf(h,"نه ");break;
}
}
if(j>i+1&&x[i+2]==0&&x[i]==0&&x[i+1]==0||j<i+1&&x[i]==0||j<i+2&&x[i]==0&&x[i+1]==0)
{
fprintf(h,"");
}
else
{
if(i==4)
{ fprintf(h,"هزار ");
for(k=i-1;k>0;k--)
if(x[k]!=0)
m++;
if(m>0) fprintf(h,"و ");
m=0;
}
//hezar
else if(i==7)
{ fprintf(h,"میلیون ");
for(k=i-1;k>0;k--)
if(x[k]!=0)
m++;
if(m>0) fprintf(h,"و ");
m=0;}
else if(i==10)
{ fprintf(h,"میلیارد ");
for(k=i-1;k>0;k--)
if(x[k]!=0)
m++;
if(m>0) fprintf(h,"و ");
m=0;}
else if(i==13)
{ fprintf(h,"تیلیارد ");
for(k=i-1;k>0;k--)
if(x[k]!=0)
m++;
if(m>0) fprintf(h,"و ");
m=0;}
else if(i==16)
{ fprintf(h,"بیلیارد ");
for(k=i-1;x[k];k--)
if(x[k]!=0)
m++;
if(m>0) fprintf(h,"و ");
m=0;}

}
}
fprintf(h,"</html>");
fclose(h);

getch();
return 0;
}