| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 793 人关注过本帖
标题:文件读取行的问题,求指导
只看楼主 加入收藏
clcqifeng
Rank: 2
等 级:论坛游民
帖 子:101
专家分:17
注 册:2012-2-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:17 
文件读取行的问题,求指导
            
程序代码:
#include <stdio.h>
#include <string.h>

main()
{
  char line[1024];
  int ident = 0;
  int i;

  FILE *fip = fopen("a.c", "r");
  FILE *fop = fopen("a.tmp", "w");
  fgets(line, 1024, fip);
  while(!ferror(fip)&& !feof(fip)){
    if(line[strlen(line)-1] == '{'){

    }
    if(line[strlen(line)-1] == '}'){

    }
    fgets(line, 1024, fip);
  }
  fclose(fip);
  fclose(fop);
  system("move a.c a.bak");
  system("move a.tmp a.c");
}
1. 读方式打开a.c, 写方式打开a.tmp
2. 读a.c的一行到 line
3. 判断 line 的最后一个字符
  3.1 { 缩进加2                           /*如何在行前面加空格*/
  3.2 } 缩进减2                           /*如何在行前面减去2空格*/
4. 将 line 前面的所有空格去掉             /*如何把一行前面的空格全去掉*/
5. 写入缩进到 a.tmp
6. 写入 line 到 a.tmp
7. 关闭 a.c 和 a.tmp
8. 将 a.c 重命名为 a.bak
9. 将 a.tmp 重命名为 a.c


就上面的第三步第4步的在行前面加减空格.  和空格全去掉不懂...求指导指导
搜索更多相关主题的帖子: 指导 
2012-02-29 17:47
clcqifeng
Rank: 2
等 级:论坛游民
帖 子:101
专家分:17
注 册:2012-2-16
收藏
得分:0 
4个小时了。。。没人么·
2012-02-29 21:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:12 
你前面的都沒練過關,就弄這個,能量不足啊。

授人以渔,不授人以鱼。
2012-03-01 00:30
clcqifeng
Rank: 2
等 级:论坛游民
帖 子:101
专家分:17
注 册:2012-2-16
收藏
得分:0 
回复 3楼 TonyDeng
加密那个完成了。到这个了。郁闷
2012-03-01 08:58
clcqifeng
Rank: 2
等 级:论坛游民
帖 子:101
专家分:17
注 册:2012-2-16
收藏
得分:0 
回复 3楼 TonyDeng
用哪个函数可以做到阿?
2012-03-01 09:00
clcqifeng
Rank: 2
等 级:论坛游民
帖 子:101
专家分:17
注 册:2012-2-16
收藏
得分:0 
回复 3楼 TonyDeng
像程序现在是写了其他几部。我就差前面加空格那些不知道用什么函数。
2012-03-01 09:00
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:8 
你是在做什么习题吗?哪看到的这些要求?如果这些接口是别人设计的,我就觉得设计的很糟糕。
另外,如果你只是想重排代码,那有现成的工具。比如 indent。
2012-03-01 10:58
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
另外,你的有几个想法很死板。
比如它让你增加缩进,你可以先往 tmp 里插入几个空格,再插入你刚才读到的行。没有必要非得在读到的内容里插空格。
删空格也一样,你把 line 前的空格略去再往 tmp 里输入就行了。也没必要非在 line 里删。

哦,你还问了要用哪个函数。
我觉得可能能用上 strpbrk。
strspn 和 strcspn 可能也有用。你可以百度它们的用法。


[ 本帖最后由 pangding 于 2012-3-1 11:10 编辑 ]
2012-03-01 11:00
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
按P版8樓的思路想

順便說一下:最好不要想現成的函數,先想需要什麼,怎麼做,然後再看有沒有合適的現成函數,如果沒有,就自己寫需要的函數,這才是學C的精粹。什麼都要現成的函數,就不要學C,C的精華,就是在什麼也沒有的前提下做出全部的東西。C語言本身,就是幾乎什麼都沒有的,連輸入輸出都沒有內置函數,庫函數、包括標準庫,其實都不是C語言本身提供的,都是程序員寫好後給大家用的,因為大家都覺得不錯,才成了庫函數。學C語言,不要異化成學庫函數就好。

授人以渔,不授人以鱼。
2012-03-01 12:40
clcqifeng
Rank: 2
等 级:论坛游民
帖 子:101
专家分:17
注 册:2012-2-16
收藏
得分:0 
回复 9楼 TonyDeng
嗯。了解。
2012-03-01 13:11
快速回复:文件读取行的问题,求指导
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017812 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved