文件里以‘\t’分隔的记录怎样分析?

wennier 2006-04-21 09:22:16
文件里记录:0001 01 20060420121212 0A1 001 4
是以TAB健分隔的,有多行,格式一致,现在要分析文件,0001和01等信息取出来,怎么分析呀?
...全文
346 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
simulationz 2006-04-21
  • 打赏
  • 举报
回复
简单,看看文件中的值,识别一下,就可以编程实现了
BaiYangSpirit 2006-04-21
  • 打赏
  • 举报
回复
我会。
用fgets(),strstr(),就行了。
or
也可以自己写个]函数而不用strstr()或者strtok()之类的,只需要两个指针就行了,一个指向当前位置,另一个指向下一个字符'\t'(0x09),取出两个指针之间的值,循环之,ok
wind19 2006-04-21
  • 打赏
  • 举报
回复
先读到缓冲区里,然后判断是否是'\t',分割
nowhere_man 2006-04-21
  • 打赏
  • 举报
回复
关注
  • 打赏
  • 举报
回复
关注一下
wennier 2006-04-21
  • 打赏
  • 举报
回复
我试了用strtok(你读入字符串, torkc);
可以分析程序里写的“char *s="Golden\tGlobal\tView";”但是不能分析从文件里读出来的行,不知道是为什么?从文件读出来的“\t”貌似全部转换成了空格,而且不是一个空格(空格的多少和文本编辑器设定有关)。
jixingzhong 2006-04-21
  • 打赏
  • 举报
回复
行读取,
存入缓冲,
然后分割字符串 ....

如果楼主说的格式一致包括数据的位数都一致的话,
用 fread 也可以 ...
hazuki9902 2006-04-21
  • 打赏
  • 举报
回复
\t的ASCII码是9,楼主在循环中判断这个就可以了.哈哈
jixingzhong 2006-04-21
  • 打赏
  • 举报
回复
分割符号确定的情况下,
可以用 strtok :

函数名: strtok
功 能: 查找由在第二个串中指定的分界符分隔开的单词
用 法: char *strtok(char *str1, char *str2);
goodluckyxl 2006-04-21
  • 打赏
  • 举报
回复
strtok来分割以\t的字符串
char torkc[] = "\t";

char* token ;

token = strtok(你读入字符串, torkc);
循环处理只到结束返回NULL
可以分割字符串

RainWindy 2006-04-21
  • 打赏
  • 举报
回复

while(*pbuff)
{
char ch = *pbuff;
if (ch == 0xD)
{
if (*(pbuff+1) == 0xA)
pbuff++;
//新行
...
}
else if (ch == 0xA)
{
// 新行
...
}
else if (ch == '\t')
{
//新段
...
}
else
{
// 加入到当前段
...
}
pbuff++;
}
wennier 2006-04-21
  • 打赏
  • 举报
回复
哎,文件里的TAB被解析出来后是空格哎,而且个数根据文本编辑器的设定不同而不同,可能是2个空格,也有可能是4个甚至是8个。


69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧