Created
February 10, 2012 12:27
-
-
Save yswallow/1789357 to your computer and use it in GitHub Desktop.
print_num_as_char
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <string.h> | |
int main(void) | |
{ | |
FILE *fpb; | |
char str[100],filename[100]; | |
//char str2[]=".c" | |
char check; | |
int length,flength,i; | |
label1: | |
printf("書き込みたいファイル名を入力してください。\n"); | |
scanf("%s",filename); | |
flength=strlen(filename); | |
if(filename[flength-1]=='c' && filename[flength-2]=='.') | |
{} | |
else strcat(filename,".c"); | |
/* | |
fpb=fopen(filename,"r"); | |
//ここから同名のファイルが存在していたときの処理 | |
if(fpb!=NULL) | |
{ | |
for(;;) | |
{ | |
printf("すでに%sというファイルが存在します。\n" | |
"上書きしてよろしいですか?\n(y or n):",filename); | |
scanf("%c",&check); | |
if(check=='y' || check=='Y') | |
break; | |
switch(check) | |
{ | |
case 'n' : | |
case 'N' : | |
for(;;) | |
{ | |
printf("プログラムを終了させますか?\n[Y/n]:"); | |
scanf("%c",&check); | |
switch(check) | |
{ | |
case 'y': | |
case 'Y': | |
fclose(fpb); | |
return 0; | |
case 'n': | |
case 'N': | |
goto label1; | |
default : | |
break; | |
} | |
} | |
default : | |
printf("ERROR!\n"); | |
break; | |
} | |
} | |
} | |
fclose(fpb); | |
//ここまで同名のファイルが存在していたときの処理 | |
*/ | |
//Segmentation faultを起こすため、コメントアウト | |
//ここからファイルの作成処理 | |
fpb=fopen(filename,"w"); | |
fprintf(fpb, | |
"#include <stdio.h>\n\n" | |
"int main(void)\n" | |
"{\n" | |
"char str[]={"); | |
printf("変化させたい文字列を入力してください。\n"); | |
scanf("%s",str); //これだとスペースを読み込めない。要検証! | |
length=strlen(str); | |
for(i=0;i<=length;i++) | |
{ | |
fprintf(fpb,"%d",str[i]); | |
if(i!=length) | |
fprintf(fpb,","); | |
} | |
fprintf(fpb, | |
"};\n" | |
"int length=%d;\n" //%dにはlength+1が代入されるように。 | |
"int i;\n\n" | |
"for(i=0;i<=length;i++)\n" | |
"\tprintf(\"%%c\",str[i]);\n\n" | |
,length+1); | |
fprintf(fpb, | |
"printf(\"\\n\");\n\n" | |
"return 0;\n" | |
"}"); | |
printf("プログラムは%sに書き込まれました。\n",filename); | |
printf("プログラムを終了します。\n"); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment