小咒 发表于 2015-6-1 17:46:12

C语言文件操作问题

本帖最后由 小咒 于 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;
char s2 = "买盘";
char s3;
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;
}

我是一只小菜鸟 发表于 2015-6-1 19:18:54

{:9_240:}
页: [1]
查看完整版本: C语言文件操作问题