对文本中含有NULL字符的处理
2017-08-17 15:59
176 查看
说明:项目中对一篇文本二进制出来到指针中(文本中含有NULL字符),但是用二进制可以读完,在xshell上对指针进行操作,到NULL字符就停止了
想过fseek ftell strstr等都不行, 凡是直接操作指针到NULL就会停止,不能完全取出来文本中的内容。
fgetc,fputc 逐个读取并存放到一个新文本中再fread出来即可;
fgetc返回值为int型 NULL会变为0,可以将所有的0化为65(A )即可;
1.txt文本中含有NULL字符 我们换NULL为A存入2.txt中,再fread出去。
代码如下:
#include<stdio.h>
#include<string.h>
void main()
{
FILE *fp ,*fp1;
int ch;
fp=NULL;
fp1=NULL;
fp=fopen("1.txt","rb");
if(!fp) return ;
fp1=fopen("2.txt","wb+");
if(!fp1) return ;
ch=fgetc(fp);
while(!feof(fp)){
if(ch!=0)
{fputc(ch,fp1);}
else
{
ch=65;
fputc(ch,fp1);
}
ch=fgetc(fp);
}
fclose(fp);
fclose(fp1);
fp =NULL;
fp1=NULL;
return ;
}
其他的操作自己完成 ,这里指解决苦逼的NULL问题。
想过fseek ftell strstr等都不行, 凡是直接操作指针到NULL就会停止,不能完全取出来文本中的内容。
fgetc,fputc 逐个读取并存放到一个新文本中再fread出来即可;
fgetc返回值为int型 NULL会变为0,可以将所有的0化为65(A )即可;
1.txt文本中含有NULL字符 我们换NULL为A存入2.txt中,再fread出去。
代码如下:
#include<stdio.h>
#include<string.h>
void main()
{
FILE *fp ,*fp1;
int ch;
fp=NULL;
fp1=NULL;
fp=fopen("1.txt","rb");
if(!fp) return ;
fp1=fopen("2.txt","wb+");
if(!fp1) return ;
ch=fgetc(fp);
while(!feof(fp)){
if(ch!=0)
{fputc(ch,fp1);}
else
{
ch=65;
fputc(ch,fp1);
}
ch=fgetc(fp);
}
fclose(fp);
fclose(fp1);
fp =NULL;
fp1=NULL;
return ;
}
其他的操作自己完成 ,这里指解决苦逼的NULL问题。
相关文章推荐
- 文本文件处理,删除其中含有某些字符文本的行,一行命令搞定
- php处理字符串,判断是否含有特殊符号,非中文,数字,字符
- js与java对http参数含有特殊字符的传递处理
- 「打」strike() //使用删除线来显示字符 20140823 ①文本处理
- 文本处理 - 每次一个字符
- 文本处理 - 检查字符串中是否包含某字符集中的字符
- perl处理含有中文字符的json编码
- python文本 单独处理每个字符的方法汇总
- c字符处理之空字符、null与0
- linux 文本中的不可见字符和处理
- 轻松python文本专题-单独处理字符串每个字符的方法汇总
- 字符及文本处理之一:wc,cut,sort,uniq,tr,paste,split
- GET请求中参数含有某些特殊字符的处理
- 关于处理GET方式提交的含有特殊字符的参数
- 处理生成文件名称时含有的特殊字符
- 黑马程序员_字符流_字节流_IO异常处理_文件的续写_拷贝文本_缓冲流
- SQL字符字段值含有单引号处理方法
- Excel文件导入到SQL,文本、数字丢失,变成NULL的处理
- IOS或者Android传递 含有emoji表情的文本到服务器之php处理方式
- 字符及文本处理之五:awk使用入门详解