标题:有谁能出个好方法
只看楼主
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
结帖率:92.86%
已结贴  问题点数:20 回复次数:9 
有谁能出个好方法
我的程序处理一个文本,假设是读这个文本吧(实际当然不是这样),
读完以后这个文本末尾会多出来一个'\n',(这个'\n'是我自己加进去的,不是程序错误)
但是怎样删去这个回车符呢,也就是说怎么样删除最后的空行
手工打开文本手动删除太麻烦

最近的牛人都哪里去了啊。。。。在我最初学c的时候,好多人指点我,现在怎么,,,

[ 本帖最后由 xdh0817 于 2011-11-28 17:06 编辑 ]
搜索更多相关主题的帖子: 手工 
2011-11-27 16:03
零波丽
Rank: 3Rank: 3
来 自:莉莉斯
等 级:论坛游侠
帖 子:222
专家分:107
注 册:2011-9-8
得分:4 

人又是什么?神造出来的东西。 人是人造出来的东西。
2011-11-27 17:51
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
得分:4 
为什么一定要删除呢?读出来的时候你可以处理掉这个\n啊。

我们都在路上。。。。。
2011-11-28 14:25
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
得分:0 
最近的牛人都哪里去了啊。。。。在我最初学c的时候,好多人指点我,现在怎么,,,
2011-11-28 17:06
非死亡!
Rank: 8Rank: 8
来 自:四川
等 级:蝙蝠侠
帖 子:179
专家分:760
注 册:2011-10-31
得分:4 
你会读取文件 你会自己在文件后加'\n' 难道不会用文件位置指针将'\n'换成\000(空字符啊)


能力 技巧
2011-11-28 17:08
leenchow
Rank: 2
等 级:论坛游民
帖 子:17
专家分:18
注 册:2010-3-29
得分:4 
回复 楼主 xdh0817
明白楼主的意思,楼主是不想读入空行。
int ReadLineStr(FILE *fp,char *dst)
{
  
  if(fp==NULL) return -1;
   
  int c;   
  char *s=dst;
     
  while((c=fgetc(fp))!= -1 && c != '\n')
        *s++=(char)c;
  
  *s='\0';  
  
  return c;
}

上面函数读取文本文件一行数据,如果一行文本只含有'\n',那么dst的长度为0,可以据此条件忽略掉。
例如:
 char LineBuf[1024];//a line data buffer
   
  int c =0;
   while( c != -1)
   {
     c = ReadLineStr(fp,LineBuf);
     if(!strlen(LineBuf)) continue; //skip null line
     ......
   }

 不知是否解答你的问题。
2011-11-29 08:29
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
得分:0 
以下是引用非死亡!在2011-11-28 17:08:27的发言:

你会读取文件 你会自己在文件后加'\n' 难道不会用文件位置指针将'\n'换成\000(空字符啊)
是把'\n'删去,不是替换成空格!!!
2011-11-29 12:55
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:4 
替换成''

★★★★★为人民服务★★★★★
2011-11-29 13:17
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
得分:0 
以下是引用cnfarer在2011-11-29 13:17:25的发言:

替换成''
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main()
{
    FILE *fp1;
    char ch;
    fp1=fopen("333.txt","a");
    fseek(fp1,-1*(char)sizeof(char),1);
    fputc('\0',fp1);
    fclose(fp1);
   
}
不对
2011-11-29 19:36
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
得分:0 
以下是引用非死亡!在2011-11-28 17:08:27的发言:

你会读取文件 你会自己在文件后加'\n' 难道不会用文件位置指针将'\n'换成\000(空字符啊)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main()
{
    FILE *fp1;
    char ch;
    fp1=fopen("333.txt","a");
    fseek(fp1,-1*(char)sizeof(char),1);
    fputc('\0',fp1);
    fclose(fp1);
   
}

不对
2011-11-29 19:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-356346-1-1.html




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

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