鱼C论坛

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

C语言文件操作问题

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

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

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

x
本帖最后由 小咒 于 2015-6-2 23:04 编辑

自己解决了,放纵了自己半个月逻辑混乱了,复习了一天解决。。。

整理一个txt文本的内容,txt文本内容如下
  1. sh600135 乐凯胶片 10:12:36 26 41194 25.99 买盘
  2. sh600135 乐凯胶片 10:12:06 25.96 53400 25.96 买盘
  3. sh600135 乐凯胶片 10:11:21 25.96 36200 25.9 买盘
  4. sh600135 乐凯胶片 10:11:06 25.9 50500 25.9 卖盘
  5. sh600135 乐凯胶片 10:09:30 25.88 27300 25.88 卖盘
  6. sh600135 乐凯胶片 10:09:05 25.88 49600 25.96 卖盘
复制代码
有规律的只显示出买盘信息或者卖盘信息,自己是思路是这样的,判断6个横向符之后读取买盘或者卖盘的字节用strcmp来做比较然后显示到屏幕上。
但是代码写来写去和预计的实在差太原。。大家来帮我看看吧谢谢。
  1. #include <stdio.h>
  2. #include <string.h>

  3. int main()
  4. {
  5. int yy = 0;//比较
  6. int a = 0;//计数
  7. long zz = 0;//文件光标偏移
  8. char x = 0;
  9. char s1[5];
  10. char s2[5] = "买盘";
  11. char s3[1024];
  12. FILE *fp1;
  13. errno_t err;

  14. if (err = fopen_s(&fp1, "1.txt", "r") != NULL)
  15. {
  16. printf("没有找到1.txt\n");
  17. system("pause");
  18. exit(0);
  19. }

  20. rewind(fp1);

  21. while (!feof(fp1))
  22. {
  23. if (x == 10)
  24. {
  25. zz = ftell(fp1);//当运行到换行时获取偏移
  26. }
  27. x = fgetc(fp1);
  28. if (x == 9)//判断横向
  29. {
  30. a++;
  31. if (a == 6)//第六个横向时读取数据
  32. {
  33. a = 0;
  34. fgets(s1,sizeof(s1),fp1);//读取4个字节数据
  35. //printf("%s", s1);
  36. }

  37. yy = 1;
  38. yy = strcmp(s1, s2);//进行比较
  39. //printf("%d\n", yy);
  40. if (yy == 0)//相同的话进行输出
  41. {
  42. fseek(fp1, zz, SEEK_SET);
  43. fgets(s3, sizeof(s3), fp1);
  44. printf("%s", s3);
  45. }

  46. }
  47. }
  48. system("pause");
  49. return 0;
  50. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-6-1 19:18:54 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-20 03:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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