#include <stdio.h>
#include <math.h>

/*グローバル変数宣言*/
FILE *fp1;    /* ファイルポインタ */

/* 定数 */
#define FNAME1 "uho.txt" /* 開くファイル名 */

void main(void)
{
	long snumber;
	long snumber2;
	long fnumber;
	int sketa;
	int fketa;
	int kzure;
	int i;
	int res;
	int kcheck;
	int zero=0;
	char zhuka[128];
	char maeurl[128];
	char atourl[128];
	
	printf("ブログのエントリ等の連番を作ります\n");
	printf("連番の前のURL等を入力してください\n");
	printf("…");
	fgets(maeurl,128,stdin);
	fflush(stdin);
	
	/*改行削除*/
	for(i=0;i<127;++i)
	{
		if(maeurl[i]=='\n')
		{
			maeurl[i]='\0';
			break;
		}
	}
	
	printf("連番の始まる数を入力してください\n");
	printf("…");
	scanf("%ld",&snumber);
	
	printf("連番の終わる数を入力して下さい\n");
	printf("…");
	scanf("%ld",&fnumber);
	
	if(snumber>fnumber)
	{
		printf("連番の始まる数が終わる数よりも大きいです。\n");
	}
	else if(snumber==fnumber)
	{
		printf("連番の始まる数と終わる数が同じです。\n");
	}
	else
	{
		printf("連番の後のURL等を入力してください\n");
		printf("…");
		scanf("%s",&atourl);
		
		/*桁数チェック*/
		sketa=(int)log10(snumber)+1;
		fketa=(int)log10(fnumber)+1;
		if(fketa!=sketa)
		{
			kzure=fketa-sketa;
			if(kzure==1)
			{
				printf("桁数が最大%d桁違いますが、少ない方の桁にゼロを付加しますか?\n",kzure);
				printf("付加するのであれば1を、そのままでよければ他の適当なキーを押してくださいな\n");
				printf("…");
				scanf("%d",&kcheck);
			}
			else
			{
				printf("おそらく最大で2桁以上桁数が違いますが、面倒なのでゼロを付加しません。\n");
			}
		}
		
		if(kcheck==1)
		{
			sprintf(zhuka,"%s%d%ld%sから\n",maeurl,zero,snumber,atourl);
			printf(zhuka);
			printf("%s%ld%sまででよろしいですね?\n",maeurl,fnumber,atourl);
			printf("よろしければ1を、違っていれば何か他の適当なキーを押してくださいな\n");
			printf("…");
			scanf("%d",&res);
		}
		else
		{
			printf("%s%ld%sから\n",maeurl,snumber,atourl);
			printf("%s%ld%sまででよろしいですね?\n",maeurl,fnumber,atourl);
			printf("よろしければ1を、違っていれば何か他の適当なキーを押してくださいな\n");
			printf("…");
			scanf("%d",&res);
		}

		if(res==1)
		{
			/*uho.txtを書き込みモードで開く*/
			fp1 = fopen(FNAME1,"w");
			if ( fp1 ==NULL)
			{
	   			printf("ファイルオープンに失敗したんです><\n");
			}
			
			if(kcheck==1)
			{
				while(snumber<=fnumber&&sketa<fketa)
				{
					fprintf(fp1,"%s%d%ld%s\n",maeurl,zero,snumber,atourl);
					snumber++;
					sketa=(int)log10(snumber)+1;
				}
				while(snumber<=fnumber)
				{
					fprintf(fp1,"%s%ld%s\n",maeurl,snumber,atourl);
					snumber++;
				}
			}
			else
			{
				while(snumber<=fnumber)
				{
					fprintf(fp1,"%s%ld%s\n",maeurl,snumber,atourl);
					snumber++;
				}
			}
			printf("ファイルへの出力が完了しました\n");
			fclose(fp1);
		}
	}	
		printf("終了します\n");
	
}