文件操作:提示用户输入2个整数m、n,然后用fopen新建一个文件,最后用fwrite保存。

文件操作

    提示用户输入2个整数m、n,然后用fopen新建一个文件,最后用fwrite保存。

    例如,用户输入12、13,则写入文本"m=12,n=13"。

由于要求采用字符串的方式写入,需要先将整数转化为字符串。

/*************
提示用户输入2个整数m、n,然后用fopen新建一个文件,最后用fwrite保存。
例如,用户输入12、13,则写入文本"m=12,n=13"。
*************/
#include <stdio.h>
int itoa_my(int value, char *string, int radix);

int main()
{
	const char * filename = "E:\\C++programming\\test.txt";
	int m = 0;
	int n = 0;
	int mw = 0;
	int nw = 0;
	printf("Please enter two integers m and n:\n");
	scanf("%d,%d",&m,&n);
	FILE * fp = fopen(filename,"wb");
	if (NULL == fp)
	{
		printf("failed to open file!\n");
		return -1;
	}
	const char * buff1 = "m=";
	const char * buff2 = ",n=";
	char buff3[10];
	char buff4[10];
	mw = itoa_my(m,buff3,10);
	if (mw == -1)
	{
		fclose(fp);
		return -1;
	}
	nw = itoa_my(n, buff4, 10);
	if (nw == -1)
	{
		fclose(fp);
		return -1;
	}
	fwrite(buff1,1,2,fp);
	fwrite(buff3, 1,mw, fp);
	fwrite(buff2,1,3,fp);
	fwrite(buff4, 1, nw, fp);
	fclose(fp);
	return 0;
}
/***********************
value:转换的正整数;
string:转换后存储的位置;
radix:以多少进制转换2,8,10,16
返回值:整数的位数
***************************/
int itoa_my(const int value, char *string, const int radix)
{
	char zf[17] = "0123456789abcdef";
	char a[100] = { 0 };
	int num = value;
	char *cp = string;
	int i = 0;

	if (radix<2 || radix>16)
	{
		printf( "error data!\n") ;
		return -1;
	}

	if (num < 0)
		num = -num;
	
	if (num == 0)
		a[i++] = zf[0];

	while (num>0)
	{
		a[i++] = zf[num%radix];
		num /= radix;
	}

	if (value < 0)
		a[i++] = '-';

	for (int j = i - 1;j >= 0;j--)
	{
		*cp++ = a[j];
	}
	*cp = '\0';
	return i;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值