鱼C论坛

 找回密码
 立即注册
查看: 847|回复: 1

C语言文件操作问题

[复制链接]
发表于 2015-6-1 17:46:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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;
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-6-1 19:18:54 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 01:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表