马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 小咒 于 2015-6-2 23:04 编辑
自己解决了,放纵了自己半个月逻辑混乱了,复习了一天解决。。。
整理一个txt文本的内容,txt文本内容如下sh600135 乐凯胶片 10:12:36 26 41194 25.99 买盘
sh600135 乐凯胶片 10:12:06 25.96 53400 25.96 买盘
sh600135 乐凯胶片 10:11:21 25.96 36200 25.9 买盘
sh600135 乐凯胶片 10:11:06 25.9 50500 25.9 卖盘
sh600135 乐凯胶片 10:09:30 25.88 27300 25.88 卖盘
sh600135 乐凯胶片 10:09:05 25.88 49600 25.96 卖盘
有规律的只显示出买盘信息或者卖盘信息,自己是思路是这样的,判断6个横向符之后读取买盘或者卖盘的字节用strcmp来做比较然后显示到屏幕上。
但是代码写来写去和预计的实在差太原。。大家来帮我看看吧谢谢。#include <stdio.h>
#include <string.h>
int main()
{
int yy = 0;//比较
int a = 0;//计数
long zz = 0;//文件光标偏移
char x = 0;
char s1[5];
char s2[5] = "买盘";
char s3[1024];
FILE *fp1;
errno_t err;
if (err = fopen_s(&fp1, "1.txt", "r") != NULL)
{
printf("没有找到1.txt\n");
system("pause");
exit(0);
}
rewind(fp1);
while (!feof(fp1))
{
if (x == 10)
{
zz = ftell(fp1);//当运行到换行时获取偏移
}
x = fgetc(fp1);
if (x == 9)//判断横向
{
a++;
if (a == 6)//第六个横向时读取数据
{
a = 0;
fgets(s1,sizeof(s1),fp1);//读取4个字节数据
//printf("%s", s1);
}
yy = 1;
yy = strcmp(s1, s2);//进行比较
//printf("%d\n", yy);
if (yy == 0)//相同的话进行输出
{
fseek(fp1, zz, SEEK_SET);
fgets(s3, sizeof(s3), fp1);
printf("%s", s3);
}
}
}
system("pause");
return 0;
}
|