c语言 填充,C语言中写文件操作字段填充的代码实现

您所在的位置:网站首页 用c语言实现文件读写操作程序 c语言 填充,C语言中写文件操作字段填充的代码实现

c语言 填充,C语言中写文件操作字段填充的代码实现

2023-03-13 07:25| 来源: 网络整理| 查看: 265

一、问题描述 向文件中写入某一内容,要求该内容的长度小于某个值(如10),不足部分可以用空格或0来填充。此外,要求程序定义一个标志来表示在写入内容的左边或右边填充及填充的是0还是空格。 二、代码实现 /***********************************************

一、问题描述

向文件中写入某一内容,要求该内容的长度小于某个值(如10),不足部分可以用空格或0来填充。此外,要求程序定义一个标志来表示在写入内容的左边或右边填充及填充的是0还是空格。

二、代码实现

/**********************************************************************

* 版权所有 (C)2015, Zhou Zhaoxiong。

*

* 文件名称:TestAlign.c

* 文件标识:无

* 内容摘要:测试写文件时的对齐

* 其它说明:无

* 当前版本: V1.0

* 作?????? 者: Zhou Zhaoxiong

* 完成日期: 20150112

*

**********************************************************************/

#include

#include

#include

// 重定义数据类型

typedef signed?? int?? INT32;

typedef signed?? char INT8;

// 函数声明

void WriteFile(INT32 iAlignFlag, INT8 *pszTestStr);

INT32 main();

/**********************************************************************

* 功能描述:主函数

* 输入参数:无

* 输出参数:无

* 返 回 值:无

* 其它说明:无

* 修改日期??????? 版本号?????????? 修改人??????????? 修改内容

* -------------------------------------------------------------------

* 20150112?????? V1.0???? Zhou Zhaoxiong?????? 创建

***********************************************************************/

INT32 main()

{

?????? INT32 iAlignFlag?? = 0;

?????? INT8 szTestStr[50] = {0};

?????? printf("请输入对齐方式(1, 2, 3, 4)和测试字符串\n");

?????? scanf("AlignFlag=%d, TestStr=%s", &iAlignFlag, szTestStr);

?????? printf("输入信息: 对齐方式%d, 测试字符串%s\n", iAlignFlag, szTestStr);

?????? WriteFile(iAlignFlag, szTestStr);?? // 调用写文件函数

????? ?return 0;???????????????? // main函数执行成功返回0

}

/**********************************************************************

* 功能描述:根据对齐方式写文件

* 输入参数:iAlignFlag-对齐方式

????????????????????pszTestStr-测试字符串

* 输出参数:无

* 返 回 值:无

* 其它说明:设基准长度为10个字节, 未达到则补空格或0

* 修改日期??????? 版本号??????????? 修改人??????????? 修改内容

* -------------------------------------------------------------------

* 20150112?????? V1.0???? Zhou Zhaoxiong?????? 创建

***********************************************************************/

void WriteFile(INT32 iAlignFlag, INT8 *pszTestStr)

{

?????? FILE *fp????????????????????? = NULL;

?????? INT8 szContent[50]???= {0};

?????? INT8 szFileName[50] = {0};

?????? if (pszTestStr == NULL)?? // 判断输入参数是否为空

?????? {

????????????? printf("WriteFile: input parameter(s) is NULL!");

????????????? return;

?????? }

?????? if (iAlignFlag == 1)???? // 左对齐, 不足的位补空格

?????? {

????????????? _snprintf(szContent, sizeof(szContent)-1, "%10s", pszTestStr);

?????? }

?????? if (iAlignFlag == 2)???? // 右对齐, 不足的位补空格

?????? {

????????????? _snprintf(szContent, sizeof(szContent)-1, "%-10s", pszTestStr);

?????? }

?????? if (iAlignFlag == 3)???? // 左对齐, 不足的位补0

?????? {

????????????? _snprintf(szContent, sizeof(szContent)-1, "%-s%0*d", pszTestStr, 10-strlen(pszTestStr), 0);

?????? }

?????? if (iAlignFlag == 4)???? // 右对齐, 不足的位补0

?????? {

????????????? _snprintf(szContent, sizeof(szContent)-1, "%0*d%s", 10-strlen(pszTestStr), 0, pszTestStr);

?????? }

?????? // 将文件内容写入

?????? strcpy(szFileName, "D:\\Test\\TestFile.txt"); // 注意: 文件目录是双\, 不要写成"D:\Test\TestFile.txt"

?????? fp = fopen(szFileName, "w");

??? ?? if (fp != NULL)

??? ?? {

??? ?????? fputs(szContent, fp);

??? ?????? fclose(fp);

??? ?????? fp = NULL;

??? ?????? printf("WriteFile: Write %s into file successfully!\n", szContent);

??? ?? }

????? ?else

?????? {

?????? printf("WriteFile: Write %s into file failed!\n", szContent);

?????? }

}

三、程序说明

本程序用iAlignFlag来表示填充方式,具体如下:

(1) 如果iAlignFlag为1,则表示在写入内容的右边填充空格(即内容左对齐, 不足的位补空格)。

(2) 如果iAlignFlag为2,则表示在写入内容的左边填充空格(即内容右对齐, 不足的位补空格)。

(3) 如果iAlignFlag为3,则表示在写入内容的右边填充0(即内容左对齐, 不足的位补0)。

(4) 如果iAlignFlag为4,则表示在写入内容的左边填充0(即内容右对齐, 不足的位补0)。

四、程序输出

6aa6d4399bc18d08e2468bddc33f951c.png

7a00f78921ac2a6a5d435fe1ba11ed2b.png

87d337bdb9443384a03720a4806e3181.png

cb551dd8f946f9beff1558f87df50044.png

同时,查看“D:\Test”下的“TestFile.txt”文件内容,可以看到写入内容正确。

(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3