2974: C语言习题5.26--文件操作3

时间限制: 1 Sec  内存限制: 128 MB

提交: 213  解决: 92

题目描述

文本文件score.dic 中存储了n名学生的信息(班级编号,姓名,成绩),每个学生信息占一行,每行的数据之间使用制表符分割,如下所示:
145811 fuxin100
145811 chengxian90
145812 zhangxue92
145812 lijun88
……
将文本文件score.dic中的制表符替换成等价个数的空格,使空格充满到下一个制表符终止位的地方,将结果输出。假设制表符终止位的位置固定,每隔8列出现一个制表符终止位。

#include <stdio.h>

#include <stdlib.h>

#define TABSIZE 8   /* 制表符宽度 */

int main()

{

    int num;        /* 空格计数 */

    int i;          /* 循环变量 */

    char ch;        /* 当前读入字符 */

    FILE *fin;      /* 输入文件 */

    fin=fopen("score.dic","r");     /* 打开输入文件读 */

    if(!fin)     /* 文件打开失败 */

    {

        fprintf(stderr,"error open file!\n");       /* 输出错误信息到标准错误设备 */

        exit(-1);       /* 强制退出,并返回错误码 */

    }
/*************/

        /* 初始化计数 */

       /* 遍历输入文件的每一个字符 */

        /* 制表符 */

       /* 补足空格 */

       /* 重新计数 */

        /* 其它字符原样输出 */

        /* 新的一行,重新计数 */

        /* 下一个终止位,重新计数 */

        /* 关闭输入文件*/
/*************

      return 0;

}

主程序已给出,请补充缺失并提交该部分。

输入

n名学生的信息(班级编号,姓名,成绩)

输出

处理后的学生数据

样例输入

样例输出

145811  fuxin           100
145811 chengxian 90
145812 zhangxue 92
145812 lijun 88

迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

#include <stdio.h>
#include <stdlib.h>
#define TABSIZE 8 /* 制表符宽度 */
int main()
{
int num; /* 空格计数 */
int i; /* 循环变量 */
char ch; /* 当前读入字符 */
FILE *fin; /* 输入文件 */
fin=fopen("score.dic","r"); /* 打开输入文件读 */
if(!fin) /* 文件打开失败 */
{
fprintf(stderr,"error open file!\n"); /* 输出错误信息到标准错误设备 */
exit(-1); /* 强制退出,并返回错误码 */
}
num=0;
while(fscanf(fin,"%c",&ch)!=EOF)
{
num++;
if(ch=='\t')
{
for(i=0; i<=TABSIZE-num; i++)
putchar(' ');
num=0;
}
else
printf("%c",ch);
if(ch=='\n'||num==TABSIZE)num=0;
}
fclose(fin);
return 0;
}

YTU 2974: C语言习题5.26--文件操作3的更多相关文章

  1. YTU 2973: C语言习题5.25--文件操作2

    2973: C语言习题5.25--文件操作2 时间限制: 1 Sec  内存限制: 128 MB 提交: 242  解决: 105 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编 ...

  2. YTU 2972: C语言习题5.24--文件操作1

    2972: C语言习题5.24--文件操作1 时间限制: 1 Sec  内存限制: 128 MB 提交: 248  解决: 94 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编号 ...

  3. YTU 2414: C语言习题 字符串排序

    2414: C语言习题 字符串排序 时间限制: 1 Sec  内存限制: 128 MB 提交: 656  解决: 305 题目描述 输入n个字符串,将它们按字母由小到大的顺序排列并输出.编写三个函数实 ...

  4. YTU 2425: C语言习题 输出月份

    2425: C语言习题 输出月份 时间限制: 1 Sec  内存限制: 128 MB 提交: 476  解决: 287 题目描述 编写一程序,输入月份号,输出该月的英文月名.例如,输入3,则输出Mar ...

  5. YTU 2420: C语言习题 不等长字符串排序

    2420: C语言习题 不等长字符串排序 时间限制: 1 Sec  内存限制: 128 MB 提交: 460  解决: 239 题目描述 在主函数中输入n(n<=10)个不等长的字符串.用另一函 ...

  6. YTU 2419: C语言习题 等长字符串排序

    2419: C语言习题 等长字符串排序 时间限制: 1 Sec  内存限制: 128 MB 提交: 650  解决: 249 题目描述 在主函数中输入n(n<=10)个等长的字符串.用另一函数对 ...

  7. YTU 2424: C语言习题 字符串比较

    2424: C语言习题 字符串比较 时间限制: 1 Sec  内存限制: 128 MB 提交: 1042  解决: 613 题目描述 写一函数,实现两个字符串的比较.即自己写一个strcmp函数,函数 ...

  8. YTU 2417: C语言习题 字符串长度

    2417: C语言习题 字符串长度 时间限制: 1 Sec  内存限制: 128 MB 提交: 758  解决: 548 题目描述 写一函数,求一个字符串的长度.在main函数中输入字符串,并输出其长 ...

  9. YTU 2429: C语言习题 学生成绩输入和输出

    2429: C语言习题 学生成绩输入和输出 时间限制: 1 Sec  内存限制: 128 MB 提交: 1897  解决: 812 题目描述 编写一个函数print,打印一个学生的成绩数组,该数组中有 ...

随机推荐

  1. 获取Json数据某节点的值

    时间匆忙,直接上代码,回家还得做清蒸鱼呢! #region 获取Json字符串某节点的值 /// <summary> /// 获取Json字符串某节点的值 /// </summary ...

  2. git提交

    1.git pull 本地已经commit 2.git checkout master 3.git pull 4.git checkout - 5.git merge master 6.git pus ...

  3. java jps命令

    jps是jdk提供的一个查看当前java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写.非常简单实用. 命令格式:jps [option ...

  4. 01分数规划zoj2676(最优比例,最小割集+二分)

    ZOJ Problem Set - 2676         Network Wars Time Limit: 5 Seconds      Memory Limit: 32768 KB      S ...

  5. 20145207《Java程序设计》第9周学习总结

    教材学习内容总结 第十六章 整合数据库 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性.厂商在操作JDBC驱 ...

  6. [原创]java WEB学习笔记68:Struts2 学习之路-- 类型转换与复杂属性配合使用

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. cocos2d-x游戏开发之动画

    MyGame.h中声明动画函数: class MyGame : public cocos2d::Layer{public: static Scene* createScene();    void U ...

  8. linux tomcat 配置

    http://www.cnblogs.com/xdp-gacl/p/4097608.html

  9. Hbase HRegionServer启动后自动关闭

    突然发现HBASE无法使用了. 然后看到在分布式的情况下,节点上的HRegionServer启动后自动关闭. 同步时间就能解决这个问题. 网上同步时间 1.  安装ntpdate工具 sudo apt ...

  10. sql set xact_abort on 用例

    set xact_abort on 设置事务回滚的当为ON时,如果你存储中的某个地方出了问题,整个事务中的语句都会回滚为OFF时,只回滚错误的地方 例子 : ALTER proc [dbo].[BuC ...