Skip to content

Instantly share code, notes, and snippets.

@yswallow
Created February 10, 2012 12:27
Show Gist options
  • Save yswallow/1789357 to your computer and use it in GitHub Desktop.
Save yswallow/1789357 to your computer and use it in GitHub Desktop.
print_num_as_char
#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