[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

请问,C语言读取文本文件,获取特定字符串,作为鼠标点击按钮?

本帖最后由 zzz19760225 于 2024-9-13 09:47 编辑

文本里的选项文字,不确定文本内和C语言输出屏幕的位置,根据文本制作而定。
那么输出到屏幕,是否可以获取选123的字符串位置,作为鼠标点击的定位呢?
(或者,根据不同屏幕界面大小的数量和比例,对应文本文件读取输出屏幕的相对位置和字体数量推算,算出其文本排序搜索的特定字符串线位置可能?)
(软件作为外壳,过手而已,文本制作者,不需要参与复杂的按钮配置问题,又具有一定灵活机动性可以发挥)
1.txt
  1. [选1游戏开始]
  2. 背个书包上学校
  3. [选2游戏说明]
  4. 下班烧饭喝酒看新闻
  5. 玩玩游戏睡觉
  6. [选3退出游戏]
复制代码
--------------------------------------------------
样本
1.txt
  1. 456  [转眼间]就穿越回了    1450年
  2. 123 但 是 一 直 [0一1道0]1550年情况依然是如此
  3. 000 而敌方      1650年[已经]开始了不同
复制代码
百度“c语言easyx在文件中查找[和]字符位置”,AI智能回答:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. int main()
  10. {
  11.     // 假设我们有一个文件file.txt,内容如下:
  12.     // This is an example [text] with some characters.
  13.     char filename[] = "1.txt";
  14.     FILE *file = fopen(filename, "r"); // 打开文件用于读取
  15.     if (file == NULL) {
  16.         printf("无法打开文件\n");
  17.         return 1;
  18.     }
  19.     int line = 1;
  20.     int position = 0;
  21.     char ch;
  22.     // 逐字符读取文件内容
  23.     while ((ch = fgetc(file)) != EOF) {
  24.         position++; // 更新当前位置
  25.         if (ch == '[') {
  26.             printf("在第 %d 行,第 %d 个位置找到 '['\n", line, position);
  27.         }
  28.         if (ch == ']') {
  29.             printf("在第 %d 行,第 %d 个位置找到 ']'\n", line, position);
  30.         }
  31.         if (ch == '\n') {
  32.             line++; // 行数增加
  33.             position = 0; // 重置位置计数器
  34.         }
  35.     }
  36.     fclose(file); // 关闭文件
  37.     system("pause"); // 暂停,以便查看输出结果
  38.     return 0;
  39. }
复制代码
执行文件exe的结果:
  1. 在第 1 行,第 7 个位置找到 '['
  2. 在第 1 行,第 14 个位置找到 ']'
  3. 在第 2 行,第 17 个位置找到 '['
  4. 在第 2 行,第 25 个位置找到 ']'
  5. 在第 3 行,第 23 个位置找到 '['
  6. 在第 3 行,第 28 个位置找到 ']'
  7. 请按任意键继续. . .
复制代码
2024.8.28
---------------------------------------------------------------------
文本线,距离,单元字体的数量,字符串实际占用的像素宽度和高度(int textheight(LPCTSTR str);
),这些概念与全部概念变量量化为数量单元,组成一个数量结构统一的可能?
计算字体数量的二进制信息层面(估计不会用到),十六进制汇编处理信息层面(可能比较大,汇编处理的信息基础。汇编层面也分为文章,字符集正则,工程记录信息的几个软件工具关联存在空间。或者说后面的处理,就是这些层面内容的显示显现),字符集处理的所谓正则(这个平常经常),一般习惯文章处理,四个问题可能空间内容需要的技术准备。
-----------------
1
大话西游一类的网络文字游戏模式,其文字里的选项,选择题。
八戒走到菜菜城,进了:(<武器店><服装店><饰品店>)。
多文本,每次载入一个单独独立的文本,需要制作者每次弄一段文字为一个文本。
全文本,每次截取一个文本的一部分,如一个小说的txt里一段章节。
多文本与全文本之间的一种适度选择。
每次点击操作载入下一页的刷新,处理一次选项的单元数量,避免过度太多出问题。
上图片区选项鼠标点击,中间文字文本文件显示里的选项点击,下边缘脱离文本的框架文字选项点击。
2
图片的单多图,简单电影胶卷模式的动画效应(在无法使用或避免使用gif的情况),怎么与同数量特征的编码文本联动。
图片(影视胶卷),Sleep(胶卷间隔时间),图片,间隔时间,图片,.............
用一个单图重复的胶卷形式实现图内多因素动画,与多图集成到一个背景上分布的做法选择。需要适合制作者理解认识使用的选择,全都有,可以自选。但是要简化,就得选择一个简单的。
3
列表图表一样的参数单多页界面
2024.8.30
-----------------------
20240913
翻页,文字没有刷新产生重叠现象,在鼠标动作后面加一个刷新。(不跟着刷新,在while里循环,鼠标移动,while会自动产生页面文字闪烁现象)
  1. #include <conio.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <windows.h>
  6. #include <graphics.h>
  7. #include <mmsystem.h>
  8. #pragma comment(lib,"winmm.lib")
  9. #pragma comment(lib,"user32.lib")
  10. #ifdef _MSC_VER
  11. #pragma warning(disable:4996)
  12. #endif
  13. int main (){
  14. char str[1024]={0};
  15.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));
  16. int H0=1200,I0=700,H1=1200,I1=500;
  17.     initgraph(H0, I0);
  18.     int a = 0;
  19.     while (!kbhit())
  20. {
  21.      MOUSEMSG msg = GetMouseMsg();
  22.      if (msg.uMsg == WM_LBUTTONDOWN) {
  23.             wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("close"),a);
  24.             mciSendString(szBuffer, NULL, 0, NULL);
  25.             a=a+1;                                               
  26.             clearrectangle(0,I1,H0,I0);                        } //刷新文字区域
  27.      if (msg.uMsg == WM_RBUTTONDOWN) {
  28.             wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("close"),a);
  29.             mciSendString(szBuffer, NULL, 0, NULL);
  30.             a=a-1;                                             
  31.             clearrectangle(0,I1,H0,I0);                        }//刷新文字区域
  32.             wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("play"),a);
  33.                 mciSendString(szBuffer, NULL, 0, NULL);
  34.                
  35.      sprintf(str,"%d.jpg",a);
  36.             IMAGE img;
  37.             loadimage(&img,str,H1,I1);
  38.             putimage(0, 0, &img);
  39.      sprintf(str,"%d.txt",a);
  40.             FILE *file = fopen(str, "r");// 打开并读取文本文件
  41. if (file)
  42. {
  43.                  char buffer[1024];
  44.                  int y = 600; // 假设图片下方开始显示文本,上下600位置写字
  45. char *line;
  46.                  while (fgets(buffer, sizeof(buffer), file))
  47. {// 逐行读取文件内容并显示
  48.                      line = strdup(buffer); // 复制行以便修改
  49.                      outtextxy(20, y, line); // 显示文本,假设从(20, y)开始
  50.                      free(line);
  51.                      y += 20;               // 下一行的y坐标
  52. }
  53.              fclose(file); // 关闭文件
  54. }
  55. }
  56.     if(szBuffer != NULL) {free(szBuffer);szBuffer=NULL;}
  57.     closegraph();
  58. return 0;
  59. }
复制代码

本帖最后由 zzz19760225 于 2024-11-22 15:15 编辑

(锁在一个地方转不出去了,始终想在变量里完成这个需求,认为认定变量作为概念空间单元的组合选择相对关系,是可以概念内完成的。问题是现实中自我已有内容并不能完成。这里的纯变量这个方向,放弃,还是继续无效折腾)
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <graphics.h>
  7. #include <easyx.h>
  8. int main()
  9. {
  10.     FILE *file = fopen("1.txt", "r");
  11. int m=1,n=0,s=0,n1=0,n2=0,n3=0;
  12. int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0;
  13. int a11=0,a12=0,a13=0,a14=0,a15=0,a16=0,a17=0;
  14.     char ch;
  15.     while ((ch = fgetc(file)) != EOF)
  16. {
  17.         n=n+1;
  18.         if (ch == '\n'){
  19.             m=m+1;         
  20. n = 0;               
  21. }
  22.         if (ch == '[') {
  23.             s=s+1;
  24.             n1=n;
  25.                 //printf("\n文字按钮%d,行%d,[列%d,\n",s,m,n1);
  26. a1=s;
  27. a2=m;
  28. a3=n;
  29. a4=n1;
  30. }
  31.         if (ch == ']') {
  32.             n2=n;
  33.                 n3=n2-n1;
  34.                         printf("\n文字按钮%d,行%d,[列%d,间%d,]列%d\n",s,m,n1,n3,n2);
  35. a5=n2;
  36. a6=n3;
  37.                         printf("\n");
  38. a11=s,a12=m,a13=n1,a14=n3,a15=n2,a16=a6,a17=a5;
  39. }
  40.     }
  41.     fclose(file);
  42. if(a11=2){   printf("a11=%d,a12=%d,a13=%d,a14=%d,a15=%d,a16=%d,a17=%d,\n",a11,a12,a13,a14,a15,a16,a17);  }
  43.     system("pause");
  44. return 0;
  45. }
复制代码
显示结果

也不能说不对,按照结果论来说,阶段步子的结果,已经出来了。需要取出结果,并需要进一步对接后面的机关线路(逻辑线)。
1问题,如何取出结果,全部结果,选择结果(FIVE66的二次指针装载解决方法,与纯变量路线)。
2不同结果内容怎么处理(作为数值建立图形空间数据)。
3通用,组用,专用的处理结果联系对接(新的大难题,自动开关选择新的页面,批处理的游戏新页面,网页和百度模式的超级链接打开文本页面。也许这部分不会如想的那么难)。

C语言中system(),括号中可不可以弄一条DOS命令批处理文件的线(q995855“批处理做一机一码的问题”),这样作为一个辅助的部队存在。
system(dir&dir /&help)
是可以实现的
通义千问2.5:“C语言win下system("dir&pause")”。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. //#include <graphics.h>
  7. //#include <easyx.h>
  8. int main(){
  9. system("dir&pause");
  10. return 0;
  11. }
复制代码

汉字DOS信息通用标准化,单机文化技术知识百科(单机为节点联网的网络),单机和可联网的简单综合游戏。下载的免费,伪免费和一元临时收费并列。伪免费是为他们服务一个点的现时或储蓄点,都可以。免费需要学习一个随机知识点
文字游戏,图形游戏(单图形页面,多,立体面集中的多维,其工作量怎么降下去,单页与多维页面一个工作量?应该是不可能的,或者寻找一个硬件效能与无有极常默游戏需求之间,相对平衡的一个台阶选择,硬件去选择软件信息地图里的对应阵列点)。
变量为单元的任意变量数字之集合,建立的任意进制。
十进制的任意进制,进制位选择,进制为集合的形式。
(0,1,2,3,4,5,6,7,8,9)(组合形式规则)(10000=1.12.456.0.0.789+123.456.789)二次或三次规则组成的进制体
变量+组合选择方法+方式和内容
如果main内是1MB,那么放main外部?
也不行

字和数字组合的组合之间加减乘除运算,代数方程式式运算。代数aXa=2a,需要一种排列形式英文在前面,可以加减的规则。
a1+a1=a2,
a2xa2=a4,
a4-a1=a3。
前面字a是敲门砖,以适应客观存在的计算机规则官僚体系,后面可以计算的。

也许应该在动态生成变量的指针块,考虑图形点阵,在两者之上考虑原理类的结构组织,相对简化已有的行业技术障碍,走原理类玩具技术验证,能用于家庭一般信息处理功用就可以。简单容易上手,高于一般人脑处理信息量,客观上完成一生的运算信息量,大概有所知的巨量准备。
就以那个动态变量10亿为信息地图
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. //#include <graphics.h>
  7. //#include <easyx.h>
  8. int main() {
  9.    
  10.     char *a = (char *)malloc(1000000000 * sizeof(char));  // 动态分配10亿个char的空间
  11.     //if (a == NULL) {fprintf(stderr, "Memory allocation failed\n");return 1;}  /*出错提示*/
  12.     for (size_t i = 0; i < 1000000000; ++i) { /*初始化数组(可选)*/ a[i] = '0';} /* 或者任何其他初始化值*/
  13.     printf("%c\n",a[123]);
  14.     printf("%c\n",a[456]);
  15.     free(a);    /*当不再需要这些数据时,释放内存*/
  16.     return 0;
  17. }
复制代码


可不可以通过生命游戏模式,获取点阵的组合选择,规律探索绘画信息有限时空组合穷尽地图。

单数,单多增减连续,断续数,集合数。

hta网页模式,执行bat批处理变量和文本信息,再读取回hta网页模式。文本的本体不变。bat处理文本前面加<p>,基本保存文本形式读取输出,如果这个处理只是流存在,而不是形成新的被改变后文本,这样更多文本就不需要产生很多新文本空间。包括文字按钮,也是搜索特定字和词,进行语句替换,但不生成新文本,流信息层面处理(指针句柄?)。

实 -> 图形 -> 算术代数 -> 算数。
运行实在形象,算术运算图形,算术代数,算术算数。象形,图形,代数,数的不同概念空间内外之间的易。
道法,形而上=气法(无法),形而下=1物法,2看法,3想法,4说法,5做法。


集合从无至有。首先需求想法,收集相关关联联系的元素,无序于集合内。重复尝试选择组合与需求比较,重复形成的规律可控,走向一种可用可行程序化做法,做的方法和数量堆积的质变,做成。(也有生命时效不够不足,而无法做成。论文式收集素材,到处理素材。联系到生活化为菜场选菜买菜,考虑需求,后面的淘洗,切配,下锅,时效流程过程,变质味道成品,吃。历史一锅菜)

从心发乎情,需求欲望的极常,唯心极限的心意识世界虚幻困局。
破碎虚空的利益利害唯物,万物能量一体(心意识是不是能量的问题,是物流之影的学习用脑身体消耗感觉比较大,但是意识影像的记忆功能,记忆一种时空重复规律的内容,可以历史影子看到物质运动的重复之圆)。
个体个人心身的唯物唯心,与道路历史人民的心身唯物唯心,相同集合里的相对单元组合选择组织,历史传统利益利害组织文化。(传承的种族是生育一代代,文化是传承如何组织的实践经验考验内容)
人概念世界每个我心情小宇宙,心情到身物的宇宙万物物流时空,道气太极阴阳相对为核心的历史传承组织文化(三次组织,传承本身是组织,传承的容器是组织,传承的容器里内容也是组织)。

物力能量,物流,物质联系关联关系的影子信息,信息单元组合穷尽地图,冇效信息和有效信息的人概念准确再现再造物质需求空间,道法基因相对稳定的通用度文化传承的传统。人概念组织机器,实现人造物质经济基础的文化传承传统文化。

按照相对关系的类集合运算,适度易经类集合方向开关算命是可以的。逻辑编程和时空化学元素代入,也是可以的,都是重复规律组合选择。

生,需,聚,凑,替换,常相对的效益效率比较选择常区域(二次常)。
每一个数量进制的组合,是一半正,一半反,把一半的通用内容,前面加一个通用的标识,与另一半区别,这样形式上可能只需要平均数量数字的组合量,就可以实现变量标定标识表示。
000,001,010,011,
111,110,101,100,
正000,正001,正010,正011,
反000,反001,反010,反011,
10亿变量,要10位数字,一半是5亿,好像没有什么大的差别,要缩小为5位数字才好。

TOP

本帖最后由 zzz19760225 于 2024-10-7 07:20 编辑

是可以提取的,只是,怎么才能更进一步呢,准确些呢?
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <graphics.h>
  7. #include <easyx.h>
  8. int main()
  9. {
  10.     FILE *file = fopen("1.txt", "r");
  11. int m=1,n=0,s=0,n1=0,n2=0,n3=0;
  12. int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0;
  13.     char ch;
  14.     while ((ch = fgetc(file)) != EOF)
  15. {
  16.         n=n+1;
  17.         if (ch == '\n'){
  18.             m=m+1;         
  19. n = 0;               
  20. }
  21.         if (ch == ']') {
  22.             n2=n;
  23.                 n3=n2-n1;
  24.                         printf("间%d,]列%d\n",n3,n2);
  25. a5=n3;
  26. a6=n2;
  27. }
  28.         if (ch == '[') {
  29.             s=s+1;
  30.             n1=n;
  31.                 printf("\n文字按钮%d,行%d,[列%d,",s,m,n1);
  32. a1=s;
  33. a2=m;
  34. a3=n;
  35. a4=n1;
  36.                        printf("\n");
  37. }
  38. // a1=s;
  39. // a2=m;
  40. // a3=n;
  41. // a4=n1;
  42. // a5=n3;
  43. // a6=n2;
  44.         if(s==2){
  45.         printf("a1=%d,a2=%d,a3=%d,a4=%d,a5=%d,a6=%d,\n",s,m,n,n1,a5,a6);
  46. }
  47.     }
  48.     fclose(file);
  49.     system("pause");
  50. return 0;
  51. }
  52. /*
  53.         if (s == '1') {
  54.             a1=s;
  55.                 a2=m;
  56. a3=n;
  57. a4=n1;
  58. a5=n2;
  59. a6=n3;
  60.                         printf("a1=%d,a2=%d,a3=%d,a4=%d,a5=%d,a6=%d,\n",a1,a2,a3,a4,a5,a6);
  61. }
  62.         if (s == '2') {
  63.             a1=s;
  64.                 a2=m;
  65. a3=n;
  66. a4=n1;
  67. a5=n2;
  68. a6=n3;
  69.                         printf("a1=%d,a2=%d,a3=%d,a4=%d,a5=%d,a6=%d,\n",a1,a2,a3,a4,a5,a6);
  70. }
  71.         if (s == '3') {
  72.             a1=s;
  73.                 a2=m;
  74. a3=n;
  75. a4=n1;
  76. a5=n2;
  77. a6=n3;
  78.                         printf("a1=%d,a2=%d,a3=%d,a4=%d,a5=%d,a6=%d,\n",a1,a2,a3,a4,a5,a6);
  79. }
  80.         if (s == '4') {
  81.             a1=s;
  82.                 a2=m;
  83. a3=n;
  84. a4=n1;
  85. a5=n2;
  86. a6=n3;
  87.                         printf("a1=%d,a2=%d,a3=%d,a4=%d,a5=%d,a6=%d,\n",a1,a2,a3,a4,a5,a6);
  88. }
  89. */
复制代码
  1. 文字按钮1,行5,[列9,
  2. 间10,]列19
  3. 文字按钮2,行5,[列23,
  4. a1=2,a2=5,a3=23,a4=23,a5=10,a6=19,
  5. a1=2,a2=5,a3=24,a4=23,a5=10,a6=19,
  6. a1=2,a2=5,a3=25,a4=23,a5=10,a6=19,
  7. a1=2,a2=5,a3=26,a4=23,a5=10,a6=19,
  8. 间4,]列27
  9. a1=2,a2=5,a3=27,a4=23,a5=4,a6=27,
  10. a1=2,a2=6,a3=0,a4=23,a5=4,a6=27,
  11. a1=2,a2=7,a3=0,a4=23,a5=4,a6=27,
  12. a1=2,a2=8,a3=0,a4=23,a5=4,a6=27,
  13. a1=2,a2=8,a3=1,a4=23,a5=4,a6=27,
  14. a1=2,a2=8,a3=2,a4=23,a5=4,a6=27,
  15. a1=2,a2=8,a3=3,a4=23,a5=4,a6=27,
  16. a1=2,a2=8,a3=4,a4=23,a5=4,a6=27,
  17. a1=2,a2=8,a3=5,a4=23,a5=4,a6=27,
  18. a1=2,a2=8,a3=6,a4=23,a5=4,a6=27,
  19. a1=2,a2=8,a3=7,a4=23,a5=4,a6=27,
  20. a1=2,a2=8,a3=8,a4=23,a5=4,a6=27,
  21. a1=2,a2=8,a3=9,a4=23,a5=4,a6=27,
  22. a1=2,a2=8,a3=10,a4=23,a5=4,a6=27,
  23. 文字按钮3,行8,[列11,
  24. 间11,]列22
  25. 文字按钮4,行11,[列13,
  26. 间12,]列25
  27. 请按任意键继续. . .
复制代码
直接输出a123456,就可以。
  1.         if(s==2){
  2.         printf("a1=%d,a2=%d,a3=%d,a4=%d,a5=%d,a6=%d,\n",a1,a2,a3,a4,a5,a6);
  3. }
复制代码
  1. 文字按钮1,行5,[列9,
  2. 间10,]列19
  3. 文字按钮2,行5,[列23,
  4. a1=2,a2=5,a3=23,a4=23,a5=10,a6=19,
  5. a1=2,a2=5,a3=23,a4=23,a5=10,a6=19,
  6. a1=2,a2=5,a3=23,a4=23,a5=10,a6=19,
  7. a1=2,a2=5,a3=23,a4=23,a5=10,a6=19,
  8. 间4,]列27
  9. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  10. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  11. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  12. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  13. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  14. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  15. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  16. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  17. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  18. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  19. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  20. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  21. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  22. a1=2,a2=5,a3=23,a4=23,a5=4,a6=27,
  23. 文字按钮3,行8,[列11,
  24. 间11,]列22
  25. 文字按钮4,行11,[列13,
  26. 间12,]列25
  27. 请按任意键继续. . .
复制代码
可以考虑建立图形模板人物图片,在模板上进行修改或直接用模板(换成自制图片或照片,摄像视频。文图音的二进制流文件,是需要的),简单的模板游戏。影视新闻舆论战的套路规律,一套套路招式,基本所有人大概可用。类似QQ游戏头像选择。套件,背景动静图层和人物动静图层,两个图层就可以。应该三个图层,一,背景图层,二,人物图层,和三相对人物图层。戏剧,戏曲的脸谱式通用游戏,文字机器唱曲唱腔。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <graphics.h>
  7. #include <easyx.h>
  8. int main()
  9. {
  10. int a=0;
  11. for(int m=0;m<5;m=m+1){
  12. a=a+1;
  13. int nm=a;
  14. printf("%d",nm);
  15. }
  16.     system("pause>null");
  17. return 0;
  18. }
复制代码
  1. 12345
复制代码
顺序定义的变量是可以的。
问题还是怎么把前面的变量组合内容,挖出来,对应顺序变量。还得怎么可用起来
变量的局部变量区域,与整体全局变量的联系关联,微观概念空间里的小变量,操作整体宏观概念空间的大变量。变量这个容器概念空间单元的圈层级,流通流动流体一体。大中小变量之间建立联系,喂喂喂,我是小变量。收到,我是大变量。
变量的太极阴阳相对矛盾论主次统一,根据需求问题和事情,建立可以矛盾对立隔离的信息关系,也可以建立相互融合一体组织的信息关系。
要把这个输出结果“12345”与“文字按钮1,行5,[列9,间10,]列19”挖出来,两者属于同一类问题。在那个资源条件范围空间里去完成,出范围就失效了。
读取文本,处理文本内容,获得机器选择的结果。这些结果对应的序数,产生对应的自动变量群,文本处理的机器数据结果,输出到变量群里作为字典选用,对应鼠标点击开关。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <graphics.h>
  7. #include <easyx.h>
  8. int main()
  9. {
  10.     int s=0,m=1,n=0,n1=0,n2=0;
  11.     char ch;
  12.     FILE *file = fopen("1.txt", "r");
  13.     while ((ch = fgetc(file)) != EOF)
  14. {
  15.         n=n+1;
  16.         if (ch == '[') {
  17.                  //printf("%d,%d,%d,",s,m,n);
  18.              n1=n;
  19. }
  20.         if (ch == ']') {
  21.              //printf("%d\n",n);   
  22.                  s=s+1;
  23.                  n2=n;
  24.                               if( s == 2 ){
  25.                                             printf("%d,%d,%d,%d,\n",s,m,n1,n2);
  26.   }
  27. }
  28.         if (ch == '\n'){
  29.              m=m+1;               
  30.              n = 0;
  31. }
  32.     }
  33.     fclose(file);
  34.     system("pause>null");
  35. return 0;
  36. }
复制代码
结果:
  1. 2,5,23,27,
复制代码
怎么把结果输送出来
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <graphics.h>
  7. #include <easyx.h>
  8. int main()
  9. {
  10.     int s=0,m=1,n=0,n1=0,n2=0;
  11.     int a1=0,a2=1,a3=0,a4=0,a5=0;
  12.     char ch;
  13.     FILE *file = fopen("1.txt", "r");
  14.     while ((ch = fgetc(file)) != EOF)
  15. {
  16.         n=n+1;
  17.         if (ch == '[') {
  18.                  //printf("%d,%d,%d,",s,m,n);
  19.              n1=n;
  20. }
  21.         if (ch == ']') {
  22.              //printf("%d\n",n);   
  23.                  s=s+1;
  24.                  n2=n;
  25.                               if( s == 2 ){
  26.                                             //printf("%d,%d,%d,%d,\n",s,m,n1,n2);
  27. a1=s,a2=m,a3=n1,a4=n2;
  28.   }
  29. }
  30.         if (ch == '\n'){
  31.              m=m+1;               
  32.              n = 0;
  33. }
  34.     }
  35.     fclose(file);
  36.     printf("%d,%d,%d,%d,\n",a1,a2,a3,a4);
  37.     system("pause>null");
  38. return 0;
  39. }
复制代码
结果:
  1. 2,5,23,27,
复制代码
可以针对提取的。
下面是怎么自动化,相对减少人工手动内容。
应该先考虑鼠标点击连成一线,之后再考虑去手工手动的自动化。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <graphics.h>
  7. #include <easyx.h>
  8. int main()
  9. {
  10.     int s=0,m=1,n=0,n1=0,n2=0;
  11.     int a1=0,a2=0,a3=1,a4=0,a5=0,a6=0;
  12.     char ch;
  13.     FILE *file = fopen("1.txt", "r");
  14.     while ((ch = fgetc(file)) != EOF)
  15. {
  16.         n=n+1;
  17.         if (ch == '[') {
  18.                  //printf("%d,%d,%d,",s,m,n);
  19.              n1=n;
  20. }
  21.         if (ch == ']') {
  22.              //printf("%d\n",n);   
  23.                  s=s+1;
  24.                  n2=n;
  25.                          a2=s;
  26. a6=a5-a4;
  27.                               if( s == 1 ){
  28.                                             //printf("%d,%d,%d,%d,\n",s,m,n1,n2);
  29. a1=s,a3=m,a4=n1,a5=n2;
  30.   }
  31. }
  32.         if (ch == '\n'){
  33.              m=m+1;               
  34.              n = 0;
  35. }
  36.     }
  37.     fclose(file);
  38.     printf("序%d-总%d,行%d,左[%d,间%d,右]%d,\n",a1,a2,a3,a4,a6,a5);
  39.     system("pause>null");
  40. return 0;
  41. }
复制代码
结果:
  1. 序1-总4,行5,左[9,间10,右]19,
复制代码
将文字按钮括号内的字符内容,和序号组成一个编码代码编号线条,怎么去查字典或什么的得出一个结果?
如果不要[]字符对称概况,而是百度百科的文字标识一下?(还是需要一个功能信号信息内容)
环境疑问:为什么产生断线卡壳的空间活动现象(从外向本看:技术不够,脑力问题,经验积累)
本体疑问:这个问题集合里有什么(建立在机器单元重复循环读取文本字符的截取上,对代表字符的并行数量齿轮变量太极,这些运动概念空间的看法想法做法需求认识理解)
内容疑问:如何处理(还是得一个个怎么去拆解才行,问题并没有到最后阶段,而是先难而后获的阶段,是一个认识理解的攻坚,也是一直存在的内在问题需要解决,一个变量数量关系的方法方式工具的问题。解决办法就是习,练习,实践,磨平问题的棱角,可以拿捏才行。怎么会这么难的呢,明明应该是齿轮组合关系,但是却无法象所需要的去输出)
如果是自我的想法选择的去向,是错误呢?迷宫中的小老鼠与实践实验验证对错,在验证的基础上进行选择。自我定义对错,自我之外通用重复规律空间的去个人化去自我的验证内容为尺子,衡量一些基本单元,这些基本单元组合选择出人需要的主动时空物质内容。

TOP

本帖最后由 zzz19760225 于 2024-9-24 10:51 编辑

全显示,多个按钮绘制都可显示。手工版编程,而不是脑思维干活,吃力。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. int main()
  10. {
  11. int H0=1000,I0=500;
  12.     initgraph(H0, I0);
  13.     FILE *file = fopen("1.txt", "r");
  14.     int m  = 1, n  = 0, s  = 0;
  15. int n1 = 0, n2 = 0, n3 = 0;
  16. int a1,a2,a3,a4,    a5,a6,a7,a8;
  17. int a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33,a34,a41,a42,a43,a44;
  18.     a11=10;
  19.     a12=50;
  20.     a13=150;
  21.     a14=70;
  22.     a21=10;
  23.     a22=200;
  24.     a23=150;
  25.     a24=220;
  26.     a31=10;
  27.     a32=300;
  28.     a33=150;
  29.     a34=320;
  30.     a41=10;
  31.     a42=400;
  32.     a43=150;
  33.     a44=420;
  34.              setlinecolor(BLUE);
  35. rectangle(a11,a12,a13,a14);
  36. rectangle(a21,a22,a23,a24);
  37. rectangle(a31,a32,a33,a34);
  38. rectangle(a41,a42,a43,a44);
  39.     RECT bof1 = {a11,a12, a13, a14};   
  40.     RECT bof2 = {a21,a22, a23, a24};   
  41. RECT bof3 = {a31,a32, a33, a34};   
  42.     RECT bof4 = {a41,a42, a43, a44};
  43.     char ch;
  44.     while ((ch = fgetc(file)) != EOF)
  45. {
  46.         n=n+1;
  47.         if (ch == '[') {
  48.             /*左*/            a2=m*20;  /*上*/    /*右*///若值小,为左上  
  49.                     a1=n*10+10;       a4=a2+20; /*下*/    a3=a1+20;   
  50.                           setlinecolor(BLUE);         
  51.                           rectangle(a1,a2,a3,a4);   
  52.                           RECT bof5 = {a1,a2, a3, a4};
  53. }
  54.         if (ch == ']') {
  55.                               a6=m*20;         
  56.                     a5=a1+10;         a8=a2+20;           a7=n*10+20;   
  57.       setlinecolor(RED);         
  58.                           rectangle(a5,a6,a7,a8);  
  59.   RECT bof6 = {a5,a6,a7,a8};
  60. }
  61.         if (ch == '\n'){
  62.               m=m+1;         
  63.       n = 0;  
  64. }
  65.     }
  66. while (1)
  67. {
  68.     MOUSEMSG msg = GetMouseMsg();                              //HOPE2021鼠标
  69.     RECT bof5 = {a1,a2, a3, a4};
  70.     RECT bof6 = {a5,a6,a7,a8};
  71. if (msg.uMsg == WM_LBUTTONDOWN){          //HOPE2021鼠标
  72.             POINT pt = {msg.x, msg.y};                         // 鼠标点击图片方位数量
  73.             if (PtInRect(&bof1, pt)&& WM_LBUTTONDOWN) {
  74.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  75.              outtextxy(300, 200, "甲123");
  76. }
  77.             if (PtInRect(&bof2, pt)&& WM_LBUTTONDOWN) {
  78.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  79.              outtextxy(300, 200, "乙456");
  80. }
  81.             if (PtInRect(&bof3, pt)&& WM_LBUTTONDOWN) {
  82.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  83.              outtextxy(300, 200, "丙789");
  84. }
  85.             if (PtInRect(&bof4, pt)&& WM_LBUTTONDOWN) {
  86.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  87.              outtextxy(300, 200, "丁111");
  88. }
  89.             if (PtInRect(&bof5, pt)&& WM_LBUTTONDOWN) {
  90.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  91.              outtextxy(300, 200, "子000");
  92. }
  93.             if (PtInRect(&bof6, pt)&& WM_LBUTTONDOWN) {
  94.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  95.              outtextxy(300, 200, "丑abc");
  96. }
  97. }}
  98.     fclose(file);
  99.     system("pause");
  100.     closegraph();
  101. return 0;
  102. }
复制代码

如果按钮数量为p,则数组[p][8]{p,m,n,a1,a2,a3,a4;p-1,m,n,a1,a2,a3,a4;......},已知p则得a1,a2,a3,a4,对应命令功能为p=.......。
有一个计数,计数几个就有几个对应的开关建立,测试的时候就是输出那个称呼,文字按钮1,鼠标点击=“文字按钮1”,这个“文字按钮1”得是自动对应的。然后这个自动对应的编码代码,是通用的,对应一个编码表什么的,而数组就是列表嘛,只能用数组咯。要怎么把数组当作一个列表字典,按照空间相对排列的固化规律,查一得二。查单得多
如何将a12345678装进a[][],是场统一中原的收编大战啊,不一定好打。
各个太元的圈层级组合选择,其太内元组合是有穷尽的,而选择提取是可以怎么编码叫号。(数组的表格列表规律,[第几行][第几列],或[第一批太中的元][第二批太中的元]的组合地图)
环境问题(容器外内外相对问题),本体问题(容器问题),体内问题(内容问题)。是什么问题(本体容器),怎么解决问题(一般平常内部内容,超常异常非常需要外部环境联系结合),为什么产生问题(内外环境)。器与不器,知与不知
行m列n的组合概念空间,是内容容器环境三个概念空间的什么分类。产生的获取不到的问题现象,属于这些概念空间组合的哪些,原因是什么。
软件空间这个身体的健康,其环境资源内容,本体本身整体内容,身体内的圈层级量化集合单元组合和独立单元内容。软件,可行的能活着,与健康身体能力流通平衡的活着活好。
a12345678算不算是一群组合的概念空间,临时的不规律的数组,或不统一的数组。
二次变量层面,将数组表格列表格式相对固定,与具体数量的变量内容隔离开来。1数组,2一次变量层面,3二次变量层面,4具体数量数字编码代码(名)=5联系互动至实。两个变量概念的容器层面,互相联系交换,分别代表数组和具体形式。
一维二维三维四维数组,集中在二维和三维,一维和四维在底限和环境极限。
顺序和无序,无序储存取空间里的有序。打散了重组,随便散放,随时重组,不足替换的组构结构功能。
行m列n,如果按照不同的按钮,顺序出数量数字,四个按钮a1[m1][n1],a2[m2][n2],a3[m3][n3],a4[m4][n4]。而这个按钮a1234自动生成,来自n的[]按钮计数。自动生成数组?
数组实一个元素单元和组合集合,那么其输出就可以是单元和组合里的有序选择。通过组合编码维地图,选择需要的任意一个地图单元点,集合多点,线,面。将数组理解为一个点阵屏幕,组合和选择。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. int main()
  10. {
  11. int szu[2][2]={{1,2},{3,4}};
  12.     printf("%d,%d\n%d,%d\n",szu[0][0],szu[0][1],szu[1][0],szu[1][1]);
  13.     system("pause");
  14. return 0;
  15. }
复制代码

数组的变量装填,并不好操作。
应该是两个部分,存,取。
要用变量,切断具体数字与数组的联系连接,重新建立一个变量具体交换开关层面。
源元,存取,输入输出容器门路和容器内容。
m,n,n1,n2,a12345678,szu[1000][12],通用的输出变量门路开关内容。
数组行列组合的规律编码
  1. 文字按钮1,行5,[列9,间10,]列19
复制代码
在显示按钮顺序的时候,自动建立变量,这批机器自动生成中介变量群,就是解题的援军。(要不要数组了呢?如果不需要数组,不需要另外自动生成变量群,直接本身变量就能完成命令指向的任务,那是最好不过了)
-
虽然没有把间隔的数值刷出来,总算是有了一点眉目。有迹可循了,胜利在望。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <graphics.h>
  7. #include <easyx.h>
  8. int main()
  9. {
  10.     FILE *file = fopen("1.txt", "r");
  11. int m=1,n=0,s=0,n1=0,n2=0,n3=0;
  12. int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0;
  13.     char ch;
  14.     while ((ch = fgetc(file)) != EOF)
  15. {
  16.         n=n+1;
  17.         if (ch == '\n'){
  18.             m=m+1;         
  19. n = 0;               
  20. }
  21.         if (ch == '[') {
  22.             s=s+1;
  23.             n1=n;
  24.                 printf("\n文字按钮%d,行%d,[列%d,\n",s,m,n1);
  25. a1=s;
  26. a2=m;
  27. a3=n;
  28. a4=n1;
  29. }
  30.         if (ch == ']') {
  31.             n2=n;
  32.                 n3=n2-n1;
  33.                         printf("间%d,]列%d\n",n3,n2);
  34. a5=n2;
  35. a6=n3;
  36.                         printf("\n");
  37. }
  38.         printf("a1=%d,a2=%d,a3=%d,a4=%d,a5=%d,a6=%d,\n",a1,a2,a3,a4,a5,a6);
  39.     }
  40.     fclose(file);
  41.     system("pause");
  42. return 0;
  43. }
复制代码

应该说,是从表面组合的稀里糊涂,走向有具体机器定量为参考的量化有迹可循,开始看到方向。后面还有一大截,至少方向是有了,或者是圈层级的方向又准确或修正了一次,正向修正主义。

TOP

本帖最后由 zzz19760225 于 2024-9-23 07:30 编辑

手工失去了有效图形,但是勉强可以对应鼠标点击的,先试一下。后面再看变量的了
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. int main()
  10. {
  11. int H0=1000,I0=500;
  12.     initgraph(H0, I0);
  13.     FILE *file = fopen("1.txt", "r");
  14.     int m  = 1, n  = 0, s  = 0;
  15. int n1 = 0, n2 = 0, n3 = 0;
  16. int a1,a2,a3,a4,    a5,a6,a7,a8;
  17. int a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33,a34,a41,a42,a43,a44;
  18.     a11=100;
  19.     a12=100;
  20.     a13=120;
  21.     a14=150;
  22.     a21=200;
  23.     a22=200;
  24.     a23=220;
  25.     a24=250;
  26.     a31=300;
  27.     a32=300;
  28.     a33=320;
  29.     a34=350;
  30.     a41=400;
  31.     a42=400;
  32.     a43=420;
  33.     a44=450;
  34.              setlinecolor(BLUE);
  35. rectangle(a11,a12,a13,a14);
  36. rectangle(a21,a22,a23,a24);
  37. rectangle(a31,a32,a33,a34);
  38. rectangle(a41,a42,a43,a44);
  39.     RECT bof1 = {a11,a12, a13, a14};   
  40.     RECT bof2 = {a21,a22, a23, a24};   
  41.     RECT bof3 = {a31,a32, a33, a34};   
  42.     RECT bof4 = {a41,a42, a43, a44};
  43.     char ch;
  44.     while ((ch = fgetc(file)) != EOF)
  45. {
  46.         n=n+1;
  47.         if (ch == '\n'){
  48.               m=m+1;         
  49.       n = 0;               
  50. }
  51.         if (ch == '[') {
  52.             /*左*/            a2=m*20;  /*上*/    /*右*///若值小,为左上  
  53.                     a1=n*10+10;       a4=a2+20; /*下*/    a3=a1+20;   
  54.                           setlinecolor(BLUE);         
  55.                           rectangle(a1,a2,a3,a4);   
  56. }
  57.         if (ch == ']') {
  58.                               a6=m*20;         
  59.                     a5=a1+10;         a8=a2+20;           a7=n*10+20;   
  60.       setlinecolor(RED);         
  61.                           rectangle(a5,a6,a7,a8);     
  62. }
  63. while (1)
  64. {
  65.     MOUSEMSG msg = GetMouseMsg();                              //HOPE2021鼠标
  66. if (msg.uMsg == WM_LBUTTONDOWN){          //HOPE2021鼠标
  67.             POINT pt = {msg.x, msg.y};                         // 鼠标点击图片方位数量
  68.             if (PtInRect(&bof1, pt)&& WM_LBUTTONDOWN) {
  69.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  70.              outtextxy(300, 200, "甲123");
  71. }
  72.             if (PtInRect(&bof2, pt)&& WM_LBUTTONDOWN) {
  73.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  74.              outtextxy(300, 200, "乙456");
  75. }
  76.             if (PtInRect(&bof3, pt)&& WM_LBUTTONDOWN) {
  77.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  78.              outtextxy(300, 200, "丙789");
  79. }
  80.             if (PtInRect(&bof4, pt)&& WM_LBUTTONDOWN) {
  81.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  82.              outtextxy(300, 200, "丁111");
  83. }
  84. }}
  85.     }
  86.     fclose(file);
  87.     system("pause");
  88.     closegraph();
  89. return 0;
  90. }
复制代码

天见可怜,终于看到图形的影子了。
变量文字按钮,依然是最后一个可以输出显示。还好是显示了,总比不显示要好。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. int main()
  10. {
  11. int H0=1000,I0=500;
  12.     initgraph(H0, I0);
  13.     FILE *file = fopen("1.txt", "r");
  14.     int m  = 1, n  = 0, s  = 0;
  15. int n1 = 0, n2 = 0, n3 = 0;
  16. int a1,a2,a3,a4,    a5,a6,a7,a8;
  17. int a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33,a34,a41,a42,a43,a44;
  18.     a11=100;
  19.     a12=100;
  20.     a13=120;
  21.     a14=150;
  22.     a21=200;
  23.     a22=200;
  24.     a23=220;
  25.     a24=250;
  26.     a31=300;
  27.     a32=300;
  28.     a33=320;
  29.     a34=350;
  30.     a41=400;
  31.     a42=400;
  32.     a43=420;
  33.     a44=450;
  34.              setlinecolor(BLUE);
  35. rectangle(a11,a12,a13,a14);
  36. rectangle(a21,a22,a23,a24);
  37. rectangle(a31,a32,a33,a34);
  38. rectangle(a41,a42,a43,a44);
  39.     RECT bof1 = {a11,a12, a13, a14};   
  40.     RECT bof2 = {a21,a22, a23, a24};   
  41. RECT bof3 = {a31,a32, a33, a34};   
  42.     RECT bof4 = {a41,a42, a43, a44};
  43.     char ch;
  44.     while ((ch = fgetc(file)) != EOF)
  45. {
  46.         n=n+1;
  47.         if (ch == '\n'){
  48.               m=m+1;         
  49.       n = 0;               
  50. }
  51.         if (ch == '[') {
  52.             /*左*/            a2=m*20;  /*上*/    /*右*///若值小,为左上  
  53.                     a1=n*10+10;       a4=a2+20; /*下*/    a3=a1+20;   
  54.                           setlinecolor(BLUE);         
  55.                           rectangle(a1,a2,a3,a4);   
  56.                           RECT bof5 = {a1,a2, a3, a4};
  57. }
  58.         if (ch == ']') {
  59.                               a6=m*20;         
  60.                     a5=a1+10;         a8=a2+20;           a7=n*10+20;   
  61.       setlinecolor(RED);         
  62.                           rectangle(a5,a6,a7,a8);  
  63.   RECT bof6 = {a5,a6,a7,a8};
  64. }
  65.     }
  66. while (1)
  67. {
  68.     MOUSEMSG msg = GetMouseMsg();                              //HOPE2021鼠标
  69.     RECT bof5 = {a1,a2, a3, a4};
  70.     RECT bof6 = {a5,a6,a7,a8};
  71. if (msg.uMsg == WM_LBUTTONDOWN){          //HOPE2021鼠标
  72.             POINT pt = {msg.x, msg.y};                         // 鼠标点击图片方位数量
  73.             if (PtInRect(&bof1, pt)&& WM_LBUTTONDOWN) {
  74.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  75.              outtextxy(300, 200, "甲123");
  76. }
  77.             if (PtInRect(&bof2, pt)&& WM_LBUTTONDOWN) {
  78.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  79.              outtextxy(300, 200, "乙456");
  80. }
  81.             if (PtInRect(&bof3, pt)&& WM_LBUTTONDOWN) {
  82.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  83.              outtextxy(300, 200, "丙789");
  84. }
  85.             if (PtInRect(&bof4, pt)&& WM_LBUTTONDOWN) {
  86.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  87.              outtextxy(300, 200, "丁111");
  88. }
  89.             if (PtInRect(&bof5, pt)&& WM_LBUTTONDOWN) {
  90.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  91.              outtextxy(300, 200, "子000");
  92. }
  93.             if (PtInRect(&bof6, pt)&& WM_LBUTTONDOWN) {
  94.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  95.              outtextxy(300, 200, "丑abc");
  96. }
  97. }}
  98.     fclose(file);
  99.     system("pause");
  100.     closegraph();
  101. return 0;
  102. }
复制代码

变量里有一组可以实现了,如何实现更多包括的三组空间。
虽然按钮只剩一个,但是,问题应该接近要解决的最终阶段了。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. int main()
  10. {
  11. int H0=1000,I0=500;
  12.     initgraph(H0, I0);
  13.     FILE *file = fopen("1.txt", "r");
  14.     int m  = 1, n  = 0, s  = 0;
  15. int n1 = 0, n2 = 0, n3 = 0;
  16. int a1,a2,a3,a4,    a5,a6,a7,a8;
  17. int a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33,a34,a41,a42,a43,a44;
  18.     a11=10;
  19.     a12=50;
  20.     a13=150;
  21.     a14=70;
  22.     a21=10;
  23.     a22=200;
  24.     a23=150;
  25.     a24=220;
  26.     a31=10;
  27.     a32=300;
  28.     a33=150;
  29.     a34=320;
  30.     a41=10;
  31.     a42=400;
  32.     a43=150;
  33.     a44=420;
  34.              setlinecolor(BLUE);
  35. rectangle(a11,a12,a13,a14);
  36. rectangle(a21,a22,a23,a24);
  37. rectangle(a31,a32,a33,a34);
  38. rectangle(a41,a42,a43,a44);
  39.     RECT bof1 = {a11,a12, a13, a14};   
  40.     RECT bof2 = {a21,a22, a23, a24};   
  41. RECT bof3 = {a31,a32, a33, a34};   
  42.     RECT bof4 = {a41,a42, a43, a44};
  43.     char ch;
  44.     while ((ch = fgetc(file)) != EOF)
  45. {
  46.         n=n+1;
  47.         if (ch == '\n'){
  48.               m=m+1;         
  49.       n = 0;               
  50. }
  51.         if (ch == '[') {
  52.             /*左*/            a2=m*20;  /*上*/    /*右*///若值小,为左上  
  53.                     a1=n*10+10;       a4=a2+20; /*下*/    a3=a1+20;   
  54.                           setlinecolor(BLUE);         
  55.                           rectangle(a1,a2,a3,a4);   
  56.                           RECT bof5 = {a1,a2, a3, a4};
  57. }
  58.         if (ch == ']') {
  59.                               a6=m*20;         
  60.                     a5=a1+10;         a8=a2+20;           a7=n*10+20;   
  61.       setlinecolor(RED);         
  62.                           rectangle(a5,a6,a7,a8);  
  63.   RECT bof6 = {a5,a6,a7,a8};
  64. while (1)
  65. {
  66.     MOUSEMSG msg = GetMouseMsg();                              //HOPE2021鼠标
  67.     RECT bof5 = {a1,a2, a3, a4};
  68.     RECT bof6 = {a5,a6,a7,a8};
  69. if (msg.uMsg == WM_LBUTTONDOWN){          //HOPE2021鼠标
  70.             POINT pt = {msg.x, msg.y};                         // 鼠标点击图片方位数量
  71.             if (PtInRect(&bof1, pt)&& WM_LBUTTONDOWN) {
  72.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  73.              outtextxy(300, 200, "甲123");
  74. }
  75.             if (PtInRect(&bof2, pt)&& WM_LBUTTONDOWN) {
  76.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  77.              outtextxy(300, 200, "乙456");
  78. }
  79.             if (PtInRect(&bof3, pt)&& WM_LBUTTONDOWN) {
  80.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  81.              outtextxy(300, 200, "丙789");
  82. }
  83.             if (PtInRect(&bof4, pt)&& WM_LBUTTONDOWN) {
  84.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  85.              outtextxy(300, 200, "丁111");
  86. }
  87.             if (PtInRect(&bof5, pt)&& WM_LBUTTONDOWN) {
  88.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  89.              outtextxy(300, 200, "子000");
  90. }
  91.             if (PtInRect(&bof6, pt)&& WM_LBUTTONDOWN) {
  92.      clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  93.              outtextxy(300, 200, "丑abc");
  94. }
  95. }}
  96. }
  97.     }
  98.     fclose(file);
  99.     system("pause");
  100.     closegraph();
  101. return 0;
  102. }
复制代码

TOP

本帖最后由 zzz19760225 于 2024-9-22 21:09 编辑

1四边空间的边量固定与相对辩证效应,产生的混乱。
2四边量的输入获取不清楚,产生的混乱。
3变量运算的混乱(例如初中的数学考卷上,都写满了答案,但是都是错误的。主观认识与客观存在重复规律的差异差别)
在脑力某些不够的情况,通过什么方式方法工具,来填补,就如建筑的垫,砖缝的填,影子,记忆与记录,形象直观与抽象思维组合观。
四个变量概念单元的数量,是有穷尽的,在万千百数量之内,受屏幕物质制造和人眼可识别的界面相对字体大小极限限制,太小的存在字体,人眼是看不到的,太大的更少,不需要考虑数量太多的问题,一般平常就几个。
四个变量是一组一组使用的,是根据人的设置,产生的四组。
四个变量一组一组是可以截取的,类似批处理的for行读取,最后留下最后一行一组有效。(那么全过程的内容怎么获取?批处理那种,加一个if过滤。if的条件问题怎么来)
四个变量一组是由行m列n组成初始,并重复循环规律组合选择,而成四个变量的。
其环境,屏幕数量极限,屏幕字符和像素大小;(默认不考虑)
其本体,软件界面数量极限,软件界面里的字符大小;
其内部相对运动的数量,输入源初始行m列n,相对关系数量增减回m+1,n+1,n=0。mn行列没搞清楚,所以后面四边输入,更是糊涂上加糊涂。那么能搞清楚吗,为什么?

for和findstr等命令,作为一个软件结构单元,放在c语言环境中观察,适合个人化的改制版,有没有呢?有的话,就是可以模仿的,文字按钮的计算问题会不会好一些(也可能遥遥无期,没有结果,因为做不到)。通过C语言软件,将dos命令,解释语言的命令内容脱模复制出来。

以需求,信息为概念空间集合,其单元的组合。
以已有技术概念空间形成的机器,机器制造用的可用内容单元,其组合。

变量是否理解为0,无,空,集合,
中文的字符集和信息数据两条路线,其实它们本无差别,无善恶,无区别,只是信息流,水流,河边的影子,或者镜子。
点像素的点,很重要。
一,储存取和显存图形单元像素点,二,通用信息数量数据进制。没有储存取的组合选择,就不会有进制通用,属于概念空间理论,制,体制,制度,院子,房子。后面人概念需求儒,就是在院子,房子里活动的人,人民,个人。三,信息进制的组合选择。(包括信息历史传承延续的统一形式可能)
准备:
WIN10+VC6.0+EASYX
1.txt
  1.           勇士大闯关
  2.         [开始游戏]
  3.           [游戏说明]
  4.             [退出游戏]
复制代码
开始过程:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. int main()
  10. {
  11.     FILE *file = fopen("1.txt", "r");
  12.     int m = 1;
  13.     int n = 0;
  14.     char ch;
  15.     while ((ch = fgetc(file)) != EOF)
  16. {
  17.         n=n+1;
  18.         if (ch == '[') { printf("%d,%d,",m, n); }
  19.         if (ch == ']') { printf("%d\n", n)    ; }
  20.         if (ch == '\n'){ m=m+1;          n = 0; }
  21.     }
  22.     fclose(file);
  23.     system("pause");
  24. return 0;
  25. }
复制代码
结束结果效果
  1. 5,9,18
  2. 8,11,20
  3. 11,13,22
  4. 请按任意键继续. . .
复制代码
空间移动的空间圈层级相对组合选择,形成的人主观主动意识组合空间,满足人的类我世界时空需求。这点汇编里寻找mov移动一类的,重复这个动作和不同地址,避免其他更多复杂内容,对门外汉来说应该有可能。
易(交换),移动,if若吐如果,三个应该都可以重复,就完成虚拟信息世界的组合。
一环境条件,一般是有的,机器和汇编软件(但是知识技术没有)。
二是本体内容,三段或四段模式,一个可以显示的界面要带着,要不看起来不习惯。
三是易,移动,if的内容,不需要数字和字符集,移动的全部是数量和顺序编码代码两者。尽可能脱离外文,甚至字符集。
四怎么易,
五如何求出需求的组合选择世界?
内核是一个概念空间容器变量编码代码组成的层面流通,流量。
(已有硬件组成可满足的基本需求,移动和如果选择->)圈层级太(抽象变量通用信息的组织->(具体软件->物质技术制作围绕信息为中心展开的硬件,回到硬件组成的基本需求,历史阶段年代的人概念需求为灵魂的硬件身体))
太(易,若)
汇编输出哈喽世界,然后进行移动和IF选择,还得有储存取。一条指令(移(a,b),if(123)),前后排序换一下,另一条指令(if(456),移(c,d))。算不算是指令集,那么这样的内容,C语言也是可以实现的,位操作。C语言可以直接变量化,基本的int整数变量,或者type通用变量。应该是通用变量,这样先没有数字数量,组合中相对关系产生数量数字代码。一切从定义,相对关系,组合开始。(这里会矛盾,如果硬件是数字数量组成,那么怎么能否定数字数量组成内容呢,假设一切数字数量硬件空间不存在,或者是一切为万物去再次组合,最后组合的圆,会转回去,类似鸡生蛋或实践论的循环。得试了才知道真假对错)
怎么试移动和如果呢?
  1. #include <stdio.h>
  2. int main()
  3. {
  4. char a,b,c;
  5. c=ab;
  6. printf("%c",c);
  7. return 0;
  8. }
复制代码
ab得有输入赋值才能得出C的抽象变量关系内容。怎么脱离具体数量数值,建立抽象纯变量层面关系呢?
不应该到处乱飞,应该集中,如何解决眼前连环画的问题,这个解决就可以用到生活里。
怎么把行m,[n,]n,三个变量提取出来。m,n1,n2,第二个可以类似相对地址(偏移地址),有一个n2-n1,相对n1的数量。提出来放哪里,输出为文本,屏幕显示的内容数码编码指向开关(句柄)输出到文本,或者输出到变量概念空间,还在机器里面转(能做到这样当然好,怎么做到呢?)。
齿轮元圆,相对运动组合,形成的组合内容单元,这些单元很多,怎么留下来,而且是留在变量里?(数组,链表?)
储存取:一组(m1,n1.1,n1.2,if1);二组(m2,n2.1,n2.2,if2),if12是指向执行对象的关系联系,关系户,联系方式,命令输出。
如果直接方形方框四边数值+行数+if空间=6个元素。用int变量就可以,数字核对一下编号表,暗号表,通过。
全部用散的单元整数和字符变量为储存池,
int m1~m1024,
int n1.1~n1.1024,
int n2.1~n2.1024
每次一个界面一般平常大概只会用这么多极限以内,无限多页的文字按钮要多一些,甚至无限延伸下去至硬件极限,而不得不进行惯常需求定义选择截取。
如果mn变量不需要另外储存,就可以完成全部文字按钮的需求呢?
一,准备
1.txt
  1.           勇士大闯关
  2.         [开始游戏 ]   [   ]
  3.           [游戏说明  ]
  4.             [退出游戏   ]
复制代码
二,开始过程
a1.exe
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. int main()
  10. {
  11.     FILE *file = fopen("1.txt", "r");
  12.     int m = 1;
  13.     int n = 0;
  14. int s = 0;
  15. int n1,n2,n3;
  16.     char ch;
  17.     while ((ch = fgetc(file)) != EOF)
  18. {
  19.         n=n+1;
  20.         if (ch == '\n'){
  21.             m=m+1;         
  22. n = 0;               
  23. }
  24.         if (ch == '[') {s=s+1;
  25.             n1=n;
  26.                 printf("文字按钮%d,行%d,[列%d,",s,m,n1);
  27. }
  28.         if (ch == ']') {
  29.             n2=n;
  30.                 n3=n2-n1;
  31.                         printf("间%d,]列%d\n",n3,n2);
  32. }
  33.     }
  34.     fclose(file);
  35.     system("pause");
  36. return 0;
  37. }
复制代码
三,结束结果效果
  1. 文字按钮1,行5,[列9,间10,]列19
  2. 文字按钮2,行5,[列23,间4,]列27
  3. 文字按钮3,行8,[列11,间11,]列22
  4. 文字按钮4,行11,[列13,间12,]列25
  5. 请按任意键继续. . .
复制代码
要是有个输出,输出排序按钮1,按钮2,这样对应输出的一个什么编号,出动开关执行那个(通用字典)内容。
应该先整理好四方框的方形空间单元,然后输出到数组一类,数组里多一个拨出电话号码的if元素,翻页就清除掉,重新输入新内容。
那么mn到a12345678,会不会也是输出内容没有保存,类似批处理for多行内容,只显示最后一行。这样需要两次储存取,会不会有点麻烦了。a123456768合并一次输出,这样只考虑一个输出储存取。
[的次数,就是按钮的次数。
很可能应该用数组,去存四个数据元素?1按钮顺序数量,2行数量,3首列数量,5间数量,4尾数量(首尾得间,间数量次于尾数量,因为来源的次序)。另外一个命令if对应编号(第一个按钮顺序数量,也可以完成这个工作)循环4个数量数值存取

要其中几个文字按钮,指向FIVE66三步曲变量。if文字按钮1,则指向已有文字或图片区域的现数值上一步(-1),文字按钮2,则指向下一步+1。
不应该直接指向,而是中间有一个交换开关层面。如文字按钮123,则指向开关阵列456(自动生成的临时字典或指令集,增加了劳动量),再指向三步曲变量。多一个步骤,专用,组用,通用,要人人能看想做明白简化的形式,哪个简化用哪个。
先得按钮发挥作用才行
鼠标每次点击的变量集合里,只能是一个,不会同时点击两个。一一对应关系,先有组合的变量集合,后有选择的鼠标,点击一次敲门,对应号码开门。
鼠标点击怎么认识这是第一个按钮,还是第二个按钮,或者是整个屏幕呢?方形方框自己知道,但是鼠标不知道啊。约定合约,在这个文字按钮的默认环境本体中,符合两个条件,鼠标点击到那个区域,就被那个区域的if部队,认为是选择了我这个按钮村社阵地,发出一个信号,我们是第三文字按钮,联系通知我们守门的,可以开门了。信息信号,还是得这方形方框去联系通知。
有四个按钮,则有对应得四个内容自动生成。四个按钮的任意一个被触发敲打敲门,就if联系过去,对应开门。
if——方形方框变量123集合==鼠标点击变量456集合——则变量789集合开门输出。
三个变量集合,每个都是一个while,或者只需要前两个。这样就感觉好一些了,好像有头绪了。那么怎么连起来呢
四个按钮:
if_按钮1方形==被鼠标点击,则输出甲或修改变量开关操作一功能;
if_按钮2方形==被鼠标点击,则输出乙或修改变量开关操作二功能;
if_按钮3方形==被鼠标点击,则输出丙或修改变量开关操作三功能;
if_按钮4方形==被鼠标点击,则输出丁或修改变量开关操作四功能;
先不要急着自动(字典阵列),先手工手动完成。
那么又回到前面的鼠标点击问题,不对路子的变形。鼠标点击选择有效第一,再之是按钮方形。之前的问题,好像是按钮方形的问题。两个问题,一个是变量只有最后一个输出被捕捉有效(需要全部有效,全部按钮方形处于捕捉动态),另一个是区域布局的方形变小失去空间了。

如果图片文字弄成C语言的网页式显示模式,可能需要换一些内容。单机伪装浏览器(如果信息可以进制换算编译,也说不定),帮助文本?

TOP

本帖最后由 zzz19760225 于 2024-9-20 12:29 编辑

点击三个文字按钮的任意一个,都是显示一个输出,果然是想象的问题出现了,而不是想象的顺利内容。
如何区分不同的位置,给出不同的对应内容呢?是不是给出的内容太少,没得选?
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. #include <mmsystem.h>
  10. #pragma comment(lib,"winmm.lib")
  11. #pragma comment(lib,"user32.lib")
  12. #ifdef _MSC_VER
  13. #pragma warning(disable:4996)
  14. #endif
  15. int main()
  16. {
  17. int H0=1000,I0=500;
  18.     initgraph(H0, I0);
  19. int a=0;
  20. int  a1,a2,a3,a4,a5,a6,a7,a8;
  21.     char str[1024]={0};
  22. int z=20;
  23.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));
  24.     setfont(z, 0, "宋体");             // 设置字体大小为20,指定字体为“宋体”
  25.     char filename[] = "1.txt";
  26.     FILE *file = fopen(filename, "r");  // 打开文件用于读取
  27.     if (file == NULL) {    printf("无法打开文件\n");      return 1;     }
  28.     int m = 1;
  29.     int n = 0;
  30.     char ch;
  31.     int y = 20;  
  32. a=a+1;
  33.     sprintf(str,"%d.txt",a);
  34.             FILE *file1 = fopen(str, "r");    // 打开并读取文本文件
  35. if (file1)
  36. {
  37.                  char buffer[1024];
  38.    
  39. char *line1;
  40.                  while (fgets(buffer, sizeof(buffer), file1))
  41. {                            // 逐行读取文件内容并显示
  42.                      line1 = strdup(buffer);  // 复制行以便修改
  43.                      settextcolor(GREEN);     //  设字符颜色
  44.                      outtextxy(z, y, line1);  // 显示文本,假设从(20横坐标, y纵坐标)开始
  45.                      free(line1);
  46.                      y =y+z;                  // 下一行的y坐标
  47. }
  48.              fclose(file1);                   // 关闭文件
  49. }
  50.                                               // 逐字符读取文件内容
  51.              while ((ch = fgetc(file)) != EOF) {
  52.                     n=n+1;   
  53.                     if (ch == '[') {  printf("%d行%d个'['\n", m, n);
  54.                   a2=m*20;      a4=a2+20;     //2,4,上下,上0相对,数值小上大下效应形态
  55.                           a1=n*10+10;   a3=a1+20;     //1,3,左右,左0相对,数值小左大右效应形态
  56.                     //    setlinecolor(RED);          // 设绘画的线条颜色
  57.                     //    rectangle(a1,a2,a3,a4);     // 方形绘画
  58. }
  59.                     if (ch == ']') {printf("%d行%d个']'\n", m, n);
  60.                   a6=m*20;      a8=a2+20;     //2,4,上下,上0相对,数值小上大下效应形态
  61.                           a5=n*10+20;   a7=a1;
  62.       setlinecolor(RED);          // 设绘画的线条颜色,红色RED,黑色隐入背景黑色BLACK
  63.                           rectangle(a5,a6,a7,a8);     // 方形绘画
  64. }
  65.                     if (ch == '\n') {
  66.                           m=m+1;   // 行数增加
  67.                           n = 0;   // 重置位置计数器
  68. }
  69. }
  70.     while (!kbhit() || (unsigned)getch() != 27) {// 无限循环,直到用户按下ESC键  
  71. MOUSEMSG msg = GetMouseMsg();// 鼠标状态
  72. if (msg.uMsg == WM_LBUTTONDOWN || (msg.x>a5 && msg.y>a6 && msg.x<a7 && msg.y<a8)) // 如果是左键点击
  73. {
  74.   //cleardevice();// 清除屏幕
  75.           outtextxy(300, 200, "123");
  76. }
  77.   if (msg.uMsg == WM_LBUTTONDBLCLK) // 如果是左键双击
  78.   {
  79.   }
  80.     if (msg.uMsg == WM_RBUTTONDOWN) // 如果是右键点击
  81. {
  82. }
  83. }
  84.     system("pause"); // 暂停,以便查看输出结果
  85.     closegraph();
  86.     if(szBuffer != NULL) {free(szBuffer);szBuffer=NULL;}
  87.     return 0;
  88. }
复制代码


假如它们的内容单元线,是顺序叫号,那么后面有一个对号的地方,可以对暗号,是不是可以带到对应的输出内容门路。有熊村四组的王莽,张三,李四,王二麻,跟我去太极一区二阳路三阴工场五行田里干活。
4个单元一组的传说中的数组,四个一装的打包,贴上数量标签,顺序标签。数量贴标签的机器
还有这个显示的内容,怎么清除呢,又不能把已有的结构清除掉。清除后重新循环显示。还是那个指定区域清除。也不对,应该是跟随需求进行清除,全清除,部分区域清除,指定小区域单元清除。(这点是否可以考虑点阵自由度的屏幕处理,用于点阵自由度汉字的内容)
也有与输出显示需求有关,文字按钮的并行页面显示,换页显示。并页就应该对并列的显示区域当作屏幕一样去清屏处理。所以遇到的需求情况,一个一个单元去处理,已有单元最好都过一遍,这些单元集合就是工具箱。
1文字按钮点击并页显示部分
1.1并页显示文字
  1.     while (!kbhit() || (unsigned)getch() != 27) {  // 无限循环,直到用户按下ESC键  
  2. MOUSEMSG msg = GetMouseMsg();  // 鼠标状态
  3. if (msg.uMsg == WM_LBUTTONDOWN || (msg.x>a5 && msg.y>a6 && msg.x<a7 && msg.y<a8))  // 如果是左键点击
  4. {
  5.   //cleardevice();// 清除屏幕
  6.           clearrectangle(300, 200, 480, 640);  // 清除指定的矩形区域
  7.           outtextxy(300, 200, "123");
  8. }
  9.   if (msg.uMsg == WM_LBUTTONDBLCLK)  // 如果是左键双击
  10.   {
  11.   }
  12.     if (msg.uMsg == WM_RBUTTONDOWN)   // 如果是右键点击
  13. {
  14.      clearrectangle(300, 200, 480, 640);  // 清除指定的矩形区域
  15.      outtextxy(300, 200, "456");
  16. }
  17. }
复制代码
出大事情了!鼠标不是点击指定区域进行开关输出显示,而是整个界面点击都输出显示!
-----------
-----------
  1. while (1)
  2. {
  3.     MOUSEMSG msg = GetMouseMsg();                                 //HOPE2021鼠标
  4.     RECT bof = {0,0, 200, 200};     //图片矩形区域 = 左, 顶, 右, 底
  5.     RECT bof1 = {0,200, 400, 400};     //图片矩形区域 = 左, 顶, 右, 底
  6.      if (msg.uMsg == WM_LBUTTONDOWN){     //HOPE2021鼠标
  7.             POINT pt = {msg.x, msg.y};                             // 鼠标点击图片方位数量
  8.             if (PtInRect(&bof, pt)&& WM_LBUTTONDOWN) {                              // 鼠标点击图片方位数量的区域有效
  9.      clearrectangle(300, 200, 480, 640);  // 清除指定的矩形区域
  10.              settextstyle(20, 0, "宋体"); // 设置文字大小为20,无倾斜,使用"微软雅黑"字体
  11.              outtextxy(300, 200, "123"); // 在窗口坐标(1100,500)处输出文本
  12. }
  13. if (PtInRect(&bof1, pt) && WM_RBUTTONDOWN) {                              // 鼠标点击图片方位数量的区域有效
  14.      clearrectangle(300, 200, 480, 640);  // 清除指定的矩形区域
  15.              settextstyle(20, 0, "宋体"); // 设置文字大小为20,无倾斜,使用"微软雅黑"字体
  16.              outtextxy(300, 200, "456"); // 在窗口坐标(1100,500)处输出文本
  17. }
  18. }}
复制代码
是可以不同区域点击,显示不同内容的。
-
-
  1. int a21,a22,a23,a24;
  2. a21=0,a22=0,a23=200,a24=200;
  3.     int a31,a32,a33,a34;
  4. a31=0,a32=200,a33=400,a34=400;
  5. while (1)
  6. {
  7.     MOUSEMSG msg = GetMouseMsg();                                 //HOPE2021鼠标
  8.     RECT bof = {a21,a22, a23, a24};     //图片矩形区域 = 左, 顶, 右, 底
  9.     RECT bof1 = {a31,a32, a33, a34};     //图片矩形区域 = 左, 顶, 右, 底
  10.      if (msg.uMsg == WM_LBUTTONDOWN){     //HOPE2021鼠标
  11.             POINT pt = {msg.x, msg.y};                             // 鼠标点击图片方位数量
  12.             if (PtInRect(&bof, pt)&& WM_LBUTTONDOWN) {                              // 鼠标点击图片方位数量的区域有效
  13.      clearrectangle(300, 200, 480, 640);  // 清除指定的矩形区域
  14.              outtextxy(300, 200, "123"); // 在窗口坐标(1100,500)处输出文本
  15. }
  16. if (PtInRect(&bof1, pt) && WM_RBUTTONDOWN) {                              // 鼠标点击图片方位数量的区域有效
  17.      clearrectangle(300, 200, 480, 640);  // 清除指定的矩形区域
  18.              outtextxy(300, 200, "456"); // 在窗口坐标(1100,500)处输出文本
  19. }
  20. }}
复制代码
同样数值放在变量里是可以重复显示的
-
-
  1.     RECT bof = {a1,a2, a3, a4};     //图片矩形区域 = 左, 顶, 右, 底
  2.     RECT bof1 = {a5,a6, a7, a8};     //图片矩形区域 = 左, 顶, 右, 底
复制代码
将文字按钮的方形框变量代入,又不行了。
  1. while (1)
  2. {
  3.     MOUSEMSG msg = GetMouseMsg();                              //HOPE2021鼠标
  4.     RECT bof = {a1-20,a2-20,a3+20,a4+20};                 //图片矩形区域 = 左, 顶, 右, 底
  5. if (msg.uMsg == WM_LBUTTONDOWN){          //HOPE2021鼠标
  6.             POINT pt = {msg.x, msg.y};                         // 鼠标点击图片方位数量
  7.             if (PtInRect(&bof, pt)&& WM_LBUTTONDOWN) {
  8.      //clearrectangle(300, 200, 200, 200);  // 清除指定的矩形区域
  9. rectangle(a1-20,a2-20,a3+20,a4+20);
  10.              outtextxy(300, 200, "123");
  11. }
  12. }}
复制代码

可以显示,但是,不听话,不是按照主观认为的按钮方形框对应内容点击显示。
虽然乱七八糟的,但是至少有现象内容,不是凭空消失无所选择,叫有得选,这样还可以有继续从错误走向不错的可能。

(或者每次截取一组四个单元)


1.2并页显示文本


2文字按钮点击换页显示部分


全面点击(整体),部分区域点击(单元),部分区域点击里的空间阵列多个单元点击,以及先后顺序区别点击,时间点击(11点钟敲钟吃饭)。
HOPE的鼠标坐标数值,进行数量数值对比,以及更复杂绕脑子的相对关系抽象变量维度集合对比。
长远技术积累的通用内容,应该是越走越薄的假设,其余组用,专用的历史阶段和年代内容,相对变化要少。中文编程应该主体通用内容为主,年代承接越来越熟悉熟练。
需要一个配套的变量形态显示方形框,可以看见,观察,对名形进行相对选择的空间。否则对着一个扫雷游戏一样的到处乱点鼠标,太不行了。另外是如何类似FOR那样,将a1a2a3a4a5a6a7a8的内容全部显示出来,要不老是稀里糊涂的,很麻烦。而实际是可以进一步相对简化的,就如没有地图的乱走,需要那个主观想法接近的工具地图。(根源应该还是m和n的数量处理那部分,信息都是来自那里,把根源源处理好,后面变量叠加再处理,a1~a8影子就出来了)

TOP

本帖最后由 zzz19760225 于 2024-9-18 22:56 编辑

手动左位文字按钮字符,对齐方形框起位。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. #include <mmsystem.h>
  10. #pragma comment(lib,"winmm.lib")
  11. #pragma comment(lib,"user32.lib")
  12. #ifdef _MSC_VER
  13. #pragma warning(disable:4996)
  14. #endif
  15. int main()
  16. {
  17. int H0=1000,I0=500;
  18.     initgraph(H0, I0);
  19. int a=0;
  20. int  a1,a2,a3,a4;
  21.     char str[1024]={0};
  22. int z=20;
  23.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));
  24.     setfont(z, 0, "宋体");             // 设置字体大小为20,指定字体为“宋体”
  25.     char filename[] = "1.txt";
  26.     FILE *file = fopen(filename, "r");  // 打开文件用于读取
  27.     if (file == NULL) {    printf("无法打开文件\n");      return 1;     }
  28.     int m = 1;
  29.     int n = 0;
  30.     char ch;
  31.     int y = 20;  
  32. a=a+1;
  33.     sprintf(str,"%d.txt",a);
  34.             FILE *file1 = fopen(str, "r");    // 打开并读取文本文件
  35. if (file1)
  36. {
  37.                  char buffer[1024];
  38.                            // 假设图片下方开始显示文本,上下600位置写字
  39. char *line1;
  40.                  while (fgets(buffer, sizeof(buffer), file1))
  41. {                            // 逐行读取文件内容并显示
  42.                      line1 = strdup(buffer);  // 复制行以便修改
  43.                      settextcolor(GREEN);    //  设字符颜色
  44.                      outtextxy(z, y, line1);   // 显示文本,假设从(20横坐标, y纵坐标)开始
  45.                      free(line1);
  46.                      y =y+z;                // 下一行的y坐标
  47. }
  48.              fclose(file1);                   // 关闭文件
  49. }
  50.                      // 逐字符读取文件内容
  51.              while ((ch = fgetc(file)) != EOF) {
  52.                     n=n+1;       // 更新当前位置
  53.                     if (ch == '[') {  printf("在第 %d 行,第 %d 个位置找到 '['\n", m, n);
  54.                   a2=m*20;      a4=a2+20;  //2,4,上下,上0相对,数值小上大下效应形态
  55.                           a1=n*10+10;      a3=a1+20;  //1,3,左右,左0相对,数值小左大右效应形态
  56.                           setlinecolor(RED);             // 设绘画的线条颜色
  57.                           rectangle(a1,a2,a3,a4);     // 方形绘画
  58. }
  59.                     if (ch == ']') {printf("在第 %d 行,第 %d 个位置找到 ']'\n", m, n); }
  60.                     if (ch == '\n') {
  61.                           m=m+1;   // 行数增加
  62.                           n = 0;   // 重置位置计数器
  63. }
  64. }
  65.     system("pause"); // 暂停,以便查看输出结果
  66.     closegraph();
  67.     if(szBuffer != NULL) {free(szBuffer);szBuffer=NULL;}
  68.     return 0;
  69. }
复制代码

间隔不会影响左定位

下面应该是,如何进行右定位对齐了。
一[联系一]计算中间的间隔字符单元数量。
[左字符可以左定位,那么如果]右字符进行右定位,会不会同样可以呢?
(如果这些定位方式方法,在后续对接鼠标点击中无效,就是方向错误,需要推倒重来。好处是有了一个概念空间的练习积累,坏处是好像白跑了一圈,又回到了从前的心意识感觉)

如果有一个通用的文本字符处理阵列集合,或百宝箱,这样文字按钮就可以有更多自由度丰富选择?
编码变量,变量穿针引线的概念空间规律。
抄写代码,实现功能,并单元化,可单元组合化。(机器编程AI编程,应该不是,一个是抽象相对关系可能尝试的批处理,一个是具体产业实践的名实有限内容)
第三方单元集?批处理第三方单元集?基本需求基本简单功能的批处理第三方单元集。
C语言中的单元集呢,goto标签段落为一个单元

本来是想前[后]相减,负值取反,后来不知道怎么拼凑,居然有符合需求的内容,就先这样,先走下一步鼠标区域点击部分,稀里糊涂拼凑存疑的,以后再说。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. #include <mmsystem.h>
  10. #pragma comment(lib,"winmm.lib")
  11. #pragma comment(lib,"user32.lib")
  12. #ifdef _MSC_VER
  13. #pragma warning(disable:4996)
  14. #endif
  15. int main()
  16. {
  17. int H0=1000,I0=500;
  18.     initgraph(H0, I0);
  19. int a=0;
  20. int  a1,a2,a3,a4,a5,a6,a7,a8;
  21.     char str[1024]={0};
  22. int z=20;
  23.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));
  24.     setfont(z, 0, "宋体");             // 设置字体大小为20,指定字体为“宋体”
  25.     char filename[] = "1.txt";
  26.     FILE *file = fopen(filename, "r");  // 打开文件用于读取
  27.     if (file == NULL) {    printf("无法打开文件\n");      return 1;     }
  28.     int m = 1;
  29.     int n = 0;
  30.     char ch;
  31.     int y = 20;  
  32. a=a+1;
  33.     sprintf(str,"%d.txt",a);
  34.             FILE *file1 = fopen(str, "r");    // 打开并读取文本文件
  35. if (file1)
  36. {
  37.                  char buffer[1024];
  38.    
  39. char *line1;
  40.                  while (fgets(buffer, sizeof(buffer), file1))
  41. {                            // 逐行读取文件内容并显示
  42.                      line1 = strdup(buffer);  // 复制行以便修改
  43.                      settextcolor(GREEN);     //  设字符颜色
  44.                      outtextxy(z, y, line1);  // 显示文本,假设从(20横坐标, y纵坐标)开始
  45.                      free(line1);
  46.                      y =y+z;                  // 下一行的y坐标
  47. }
  48.              fclose(file1);                   // 关闭文件
  49. }
  50.                                               // 逐字符读取文件内容
  51.              while ((ch = fgetc(file)) != EOF) {
  52.                     n=n+1;   
  53.                     if (ch == '[') {  printf("%d行%d个'['\n", m, n);
  54.                   a2=m*20;      a4=a2+20;     //2,4,上下,上0相对,数值小上大下效应形态
  55.                           a1=n*10+10;   a3=a1+20;     //1,3,左右,左0相对,数值小左大右效应形态
  56.                     //    setlinecolor(RED);          // 设绘画的线条颜色
  57.                     //    rectangle(a1,a2,a3,a4);     // 方形绘画
  58. }
  59.                     if (ch == ']') {printf("%d行%d个']'\n", m, n);
  60.                   a6=m*20;      a8=a2+20;     //2,4,上下,上0相对,数值小上大下效应形态
  61.                           a5=n*10+10;   a7=a1+10;
  62.       setlinecolor(RED);          // 设绘画的线条颜色
  63.                           rectangle(a5,a6,a7,a8);     // 方形绘画
  64. }
  65.                     if (ch == '\n') {
  66.                           m=m+1;   // 行数增加
  67.                           n = 0;   // 重置位置计数器
  68. }
  69. }
  70.     system("pause"); // 暂停,以便查看输出结果
  71.     closegraph();
  72.     if(szBuffer != NULL) {free(szBuffer);szBuffer=NULL;}
  73.     return 0;
  74. }
复制代码
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. #include <mmsystem.h>
  10. #pragma comment(lib,"winmm.lib")
  11. #pragma comment(lib,"user32.lib")
  12. #ifdef _MSC_VER
  13. #pragma warning(disable:4996)
  14. #endif
  15. int main()
  16. {
  17. int H0=1000,I0=500;
  18.     initgraph(H0, I0);
  19. int a=0;
  20. int  a1,a2,a3,a4,a5,a6,a7,a8;
  21.     char str[1024]={0};
  22. int z=20;
  23.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));
  24.     setfont(z, 0, "宋体");             // 设置字体大小为20,指定字体为“宋体”
  25.     char filename[] = "1.txt";
  26.     FILE *file = fopen(filename, "r");  // 打开文件用于读取
  27.     if (file == NULL) {    printf("无法打开文件\n");      return 1;     }
  28.     int m = 1;
  29.     int n = 0;
  30.     char ch;
  31.     int y = 20;  
  32. a=a+1;
  33.     sprintf(str,"%d.txt",a);
  34.             FILE *file1 = fopen(str, "r");    // 打开并读取文本文件
  35. if (file1)
  36. {
  37.                  char buffer[1024];
  38.    
  39. char *line1;
  40.                  while (fgets(buffer, sizeof(buffer), file1))
  41. {                            // 逐行读取文件内容并显示
  42.                      line1 = strdup(buffer);  // 复制行以便修改
  43.                      settextcolor(GREEN);     //  设字符颜色
  44.                      outtextxy(z, y, line1);  // 显示文本,假设从(20横坐标, y纵坐标)开始
  45.                      free(line1);
  46.                      y =y+z;                  // 下一行的y坐标
  47. }
  48.              fclose(file1);                   // 关闭文件
  49. }
  50.                                               // 逐字符读取文件内容
  51.              while ((ch = fgetc(file)) != EOF) {
  52.                     n=n+1;   
  53.                     if (ch == '[') {  printf("%d行%d个'['\n", m, n);
  54.                   a2=m*20;      a4=a2+20;     //2,4,上下,上0相对,数值小上大下效应形态
  55.                           a1=n*10+10;   a3=a1+20;     //1,3,左右,左0相对,数值小左大右效应形态
  56.                     //    setlinecolor(RED);          // 设绘画的线条颜色
  57.                     //    rectangle(a1,a2,a3,a4);     // 方形绘画
  58. }
  59.                     if (ch == ']') {printf("%d行%d个']'\n", m, n);
  60.                   a6=m*20;      a8=a2+20;     //2,4,上下,上0相对,数值小上大下效应形态
  61.                           a5=n*10+20;   a7=a1;
  62.       setlinecolor(RED);          // 设绘画的线条颜色
  63.                           rectangle(a5,a6,a7,a8);     // 方形绘画
  64. }
  65.                     if (ch == '\n') {
  66.                           m=m+1;   // 行数增加
  67.                           n = 0;   // 重置位置计数器
  68. }
  69. }
  70.     system("pause"); // 暂停,以便查看输出结果
  71.     closegraph();
  72.     if(szBuffer != NULL) {free(szBuffer);szBuffer=NULL;}
  73.     return 0;
  74. }
复制代码

把[]区域也包括进去,这样空间就足够了。
下面是针对这个数值内容,进行鼠标点击区域设置(不管数值怎么来的)。
鼠标点击区域部分,点击输出信息部分,所有不同区域点击输出一个内容,各个区域点击分别拉线穿针到不同的if联系连接地方。(一个区域集中输出,提示有信号。一个区域集中输出,输出不同点击的内容信号)
(点击,换一个个文本,换文本中的一个个章节段落,搜索文件夹和文件及其内容。单机简化式家用版google,百度,知识链接的跳转,链接为一个信息整体,抽象简化够用的圆概念)

TOP

本帖最后由 zzz19760225 于 2024-9-17 22:01 编辑

上下相对的a1,a3,数值内容,与左右的a2,a4,交换一下,就从显示的上下竖布置,换成横布置了。

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. #ifdef _MSC_VER                   //Five66变量三步曲
  10. #pragma warning(disable:4996)     //Five66变量三步曲
  11. #endif                            //Five66变量三步曲
  12. int main(){
  13.     char str[1024]={0};   //Five66变量三步曲
  14.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));          //Five66变量三步曲
  15. int H0=400,I0=250;
  16.     initgraph(H0, I0);
  17.     int  m = 1      ;
  18.     int  n = 0      ;
  19.     char ch         ;
  20.     int  a = 0      ;
  21. int  a1,a2,a3,a4;
  22.     setfont(20, 10, "宋体"); // 设置字体大小为20,指定字体为“宋体”
  23.     // sprintf(str,"%d.txt",a);                //Five66变量三步曲,文字文本文件变量
  24.     FILE *file = fopen("1.txt", "r");    // 打开并读取文本文件
  25.     while ((ch = fgetc(file)) != EOF) { // 逐字符读取文件内容
  26.         n=n+1;     
  27.         if (ch == '[') {  
  28.                      a2=m*18;  a4=a2+18 ;
  29.                      a1=n*18;  a3=a1+18 ;
  30.                         rectangle(a1,a2,a3,a4);
  31. }
  32.         if (ch == '\n') {   m=m+1;      n = 0;         }
  33. }
  34. if (file)
  35. {
  36.             char buffer[1024];
  37.                  int y = 20;                // 假设图片下方开始显示文本,上下600位置写字
  38. char *line;
  39.                  while (fgets(buffer, sizeof(buffer), file))
  40. {                           // 逐行读取文件内容并显示
  41.                      line = strdup(buffer);  // 复制行以便修改
  42.                      outtextxy(20, y, line); // 显示文本,假设从(20, y)开始
  43.                      free(line);
  44.                      y += 20;                // 下一行的y坐标
  45. }
  46.              fclose(file);                   // 关闭文件
  47. }
  48.     fclose(file);                       // 关闭文件
  49. getch();                            //暂停以便于观察程序
  50. closegraph();
  51. return 0;   
  52. }
复制代码
可以横过来了。但是新的问题,是按钮的文字内容与绘图方框不能并列,之前手动那个是可以并列的,便于观察。
另一个主要新的问题是所有的多文字按钮,是对应一个相同的鼠标触发,输出同一个内容,还是分别对应不同的内容。如何实现多个鼠标点击区域,对应不同选择内容。
还有个,是开始Five66三步曲变量,文字按钮点击切换后,新的内容是否有效,不断点击文字按钮,切换显示新的文本内容,新的文字按钮(刷新?,新显示是切换设置好的一个个文本单元,还是一个文本里的一个个章段节信号截取?)。

文字按钮和定位方框可以并列了,但是没有规律对应联系连接起来。需要穿针引线裁剪缝纫细密些
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. #include <mmsystem.h>
  10. #pragma comment(lib,"winmm.lib")
  11. #pragma comment(lib,"user32.lib")
  12. #ifdef _MSC_VER
  13. #pragma warning(disable:4996)
  14. #endif
  15. int main()
  16. {
  17. int H0=1000,I0=500;
  18.     initgraph(H0, I0);
  19. int a=0;
  20. int  a1,a2,a3,a4;
  21.     char str[1024]={0};
  22.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));
  23.         setfont(20, 0, "宋体"); // 设置字体大小为20,指定字体为“宋体”
  24.     char filename[] = "1.txt";
  25.     FILE *file = fopen(filename, "r"); // 打开文件用于读取
  26.     if (file == NULL) {
  27.         printf("无法打开文件\n");
  28.         return 1;
  29.     }
  30.     int m = 1;
  31.     int n = 0;
  32.     char ch;
  33.     // 逐字符读取文件内容
  34.     while ((ch = fgetc(file)) != EOF) {
  35.         n=n+1; // 更新当前位置
  36.         if (ch == '[') {printf("在第 %d 行,第 %d 个位置找到 '['\n", m, n);
  37.                 a2=m*18;  a4=a2+18 ;
  38.                      a1=n*18;  a3=a1+18 ;
  39.                         rectangle(a1,a2,a3,a4);
  40. }
  41.         if (ch == ']') {printf("在第 %d 行,第 %d 个位置找到 ']'\n", m, n);}
  42.         if (ch == '\n') {
  43.             m=m+1; // 行数增加
  44.             n = 0; // 重置位置计数器
  45.         }
  46.     }
  47. a=a+1;
  48.     sprintf(str,"%d.txt",a);
  49.             FILE *file1 = fopen(str, "r");// 打开并读取文本文件
  50. if (file1)
  51. {
  52.                  char buffer[1024];
  53.                  int y = 0; // 假设图片下方开始显示文本,上下600位置写字
  54. char *line1;
  55.                  while (fgets(buffer, sizeof(buffer), file1))
  56. {// 逐行读取文件内容并显示
  57.                      line1 = strdup(buffer); // 复制行以便修改
  58.                      outtextxy(20, y, line1); // 显示文本,假设从(20, y)开始
  59.                      free(line1);
  60.                      y += 20;               // 下一行的y坐标
  61. }
  62.              fclose(file1); // 关闭文件
  63. }
  64.     system("pause"); // 暂停,以便查看输出结果
  65.     closegraph();
  66.     if(szBuffer != NULL) {free(szBuffer);szBuffer=NULL;}
  67.     return 0;
  68. }
复制代码

鼠标点击的模拟方形框,其上下行参数数值,应该以文字为相对数值,联动。
上下
字体开始显示位置,字符上线,字体高度显示大小,字符下线。字符有间隔值,区别于字符字体大小,属于双层值。字符字体大小,等于间隔值,字符字体的上下,就是间隔值的上下线。要对齐,减少一个麻烦。
                         方形上线,方形包括字体区域,方形下线。方形没有间隔值
太麻烦了
基本可以保持上下文字于方形一致,为什么做到,需要慢慢熟悉再说。后面应该是怎么把字的左右距离拉近[字符
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. #include <mmsystem.h>
  10. #pragma comment(lib,"winmm.lib")
  11. #pragma comment(lib,"user32.lib")
  12. #ifdef _MSC_VER
  13. #pragma warning(disable:4996)
  14. #endif
  15. int main()
  16. {
  17. int H0=1000,I0=500;
  18.     initgraph(H0, I0);
  19. int a=0;
  20. int  a1,a2,a3,a4;
  21.     char str[1024]={0};
  22. int z=20;
  23.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));
  24.     setfont(z, 0, "宋体");             // 设置字体大小为20,指定字体为“宋体”
  25.     char filename[] = "1.txt";
  26.     FILE *file = fopen(filename, "r");  // 打开文件用于读取
  27.     if (file == NULL) {    printf("无法打开文件\n");      return 1;     }
  28.     int m = 1;
  29.     int n = 0;
  30.     char ch;
  31.     int y = 20;  
  32. a=a+1;
  33.     sprintf(str,"%d.txt",a);
  34.             FILE *file1 = fopen(str, "r");    // 打开并读取文本文件
  35. if (file1)
  36. {
  37.                  char buffer[1024];
  38.                            // 假设图片下方开始显示文本,上下600位置写字
  39. char *line1;
  40.                  while (fgets(buffer, sizeof(buffer), file1))
  41. {                            // 逐行读取文件内容并显示
  42.                      line1 = strdup(buffer);  // 复制行以便修改
  43.                      settextcolor(GREEN);    //  设字符颜色
  44.                      outtextxy(z, y, line1);   // 显示文本,假设从(20横坐标, y纵坐标)开始
  45.                      free(line1);
  46.                      y =y+z;                // 下一行的y坐标
  47. }
  48.              fclose(file1);                   // 关闭文件
  49. }
  50.                      // 逐字符读取文件内容
  51.              while ((ch = fgetc(file)) != EOF) {
  52.                     n=n+1;       // 更新当前位置
  53.                     if (ch == '[') {  printf("在第 %d 行,第 %d 个位置找到 '['\n", m, n);
  54.                   a2=m*20;      a4=a2+20;  //2,4,上下,上0相对,数值小上大下效应形态
  55.                           a1=n*18;      a3=a1+18;  //1,3,左右,左0相对,数值小左大右效应形态
  56.                           setlinecolor(RED);             // 设绘画的线条颜色
  57.                           rectangle(a1,a2,a3,a4);     // 方形绘画
  58. }
  59.                     if (ch == ']') {printf("在第 %d 行,第 %d 个位置找到 ']'\n", m, n); }
  60.                     if (ch == '\n') {
  61.                           m=m+1;   // 行数增加
  62.                           n = 0;   // 重置位置计数器
  63. }
  64. }
  65.     system("pause"); // 暂停,以便查看输出结果
  66.     closegraph();
  67.     if(szBuffer != NULL) {free(szBuffer);szBuffer=NULL;}
  68.     return 0;
  69. }
复制代码

TOP

本帖最后由 zzz19760225 于 2024-9-17 08:25 编辑


在第 1 行,第 1 个位置找到 '['
在第 1 行,第 2 个位置找到 ']'
在第 1 行,第 3 个位置找到 '['
在第 1 行,第 5 个位置找到 ']'

1Xa,2Xa,3Xa,5Xa,
若a=9,则
1Xa=9
2Xa=18
3Xa=27
5Xa=45
假设的单元定义a,与一些设置字体大小,距离,上下的联系。
“setfont(20, 0, "宋体"); // 设置字体大小为20,指定字体为“宋体””
“outtextxy(20, y, line1); // 显示文本,假设从(20, y)开始”
“y += 20;               // 下一行的y坐标”
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. int main(){
  10. int H0=400,I0=250;
  11.     initgraph(H0, I0);
  12.     FILE *file = fopen("1.txt", "r");  // 打开文件用于读取
  13.     int  line = 1;
  14.     int  n    = 0;
  15.     char ch      ;
  16. int s1z1[1024]={0};
  17. int s1z2[1024]={0};
  18.     while ((ch = fgetc(file)) != EOF) { // 逐字符读取文件内容
  19.         n=n+1;     
  20.         if (ch == '[') {  
  21.    printf("在第 %d 行,第 %d 个位置找到 '['\n", line, n);
  22.     s1z1[line]=line;
  23.     s1z2[n]=n;
  24. }
  25.         if (ch == ']') {  
  26.     printf("在第 %d 行,第 %d 个位置找到 ']'\n", line, n);
  27.     s1z1[line]=line;
  28.     s1z2[n]=n;
  29. }
  30.         if (ch == '\n') {
  31.             line=line+1;                // 行数增加
  32.             n = 0;                      // 重置位置计数器
  33.         }
  34.         printf("%d\n", s1z1[line]);
  35.         printf("%d\n", s1z2[n]);
  36.     }
  37.     fclose(file);                       // 关闭文件
  38.     //rectangle(a1,a2,a3,a4);
  39. getch();                            //暂停以便于观察程序
  40. closegraph();
  41. return 0;   
  42. }
复制代码
按键跳过图形界面,显示控制台信息。
也许是可以通过数组进行配对,连接到按钮方形的数值空间。



rectangle(a1,a2,a3,a4);方框方形的四面相对数量数值,以左和上为起始,这样a1与a3,a2与a4,谁数量小,谁就是左上,谁数量大,就是右下。这样不容易被习惯坐标定位迷惑,绕混了,我管你算哪里的,谁站的前排。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. int main(){
  10. int H0=400,I0=250;
  11.     initgraph(H0, I0);
  12.     FILE *file = fopen("1.txt", "r");  // 打开文件用于读取
  13.     int  line = 1;
  14.     int  n    = 0;
  15.     char ch      ;
  16. int s1z1[1024]={0};
  17. int s1z2[1024]={0};
  18.     while ((ch = fgetc(file)) != EOF) { // 逐字符读取文件内容
  19.         n=n+1;     
  20.         if (ch == '[') {  
  21.    printf("在第 %d 行,第 %d 个位置找到 '['\n", line, n);
  22.     s1z1[line]=line;
  23.     s1z2[n]=n;
  24. }
  25.         if (ch == ']') {  
  26.     printf("在第 %d 行,第 %d 个位置找到 ']'\n", line, n);
  27.     s1z1[line]=line;
  28.     s1z2[n]=n;
  29. }
  30.         if (ch == '\n') {
  31.             line=line+1;                // 行数增加
  32.             n = 0;                      // 重置位置计数器
  33.         }
  34.         printf("%d,%d(%d)\n", s1z1[line], s1z2[n],n);
  35.     }
  36.     fclose(file);                       // 关闭文件
  37.     //rectangle(a1,a2,a3,a4);
  38. getch();                            //暂停以便于观察程序
  39. closegraph();
  40. return 0;   
  41. }
复制代码


在第 1 行,第 1 个位置找到 '['
1,1(1)
在第 1 行,第 2 个位置找到 ']'
1,2(2)
在第 1 行,第 3 个位置找到 '['
1,3(3)
1,0(4)
在第 1 行,第 5 个位置找到 ']'
1,5(5)
在第 1 行,第 6 个位置找到 '['
1,6(6)
1,0(7)
1,0(8)
在第 1 行,第 9 个位置找到 ']'
1,9(9)
0,0(0)
  1.         if (ch == '[') {  
  2.    printf("在第 %d 行,第 %d 个位置找到 '['\n", line, n);
  3.     s1z1[line]=line;
  4.     s1z2[n]=n;
  5. }
  6.      //   if (ch == ']') {  
  7. //    printf("在第 %d 行,第 %d 个位置找到 ']'\n", line, n);
  8. //   s1z1[line]=line;
  9. //    s1z2[n]=n;
  10.      // }
复制代码
1.txt
[按钮1][2][ 3 ]
[装备][武器店][  ]

在第 1 行,第 1 个位置找到 '['
1,1(1)
1,0(2)
1,0(3)
1,0(4)
1,0(5)
1,0(6)
1,0(7)
1,0(8)
1,0(9)
在第 1 行,第 10 个位置找到 '['
1,10(10)
1,0(11)
1,0(12)
在第 1 行,第 13 个位置找到 '['
1,13(13)
1,0(14)
1,0(15)
1,0(16)
1,0(17)
0,0(0)
在第 2 行,第 1 个位置找到 '['
2,1(1)
2,0(2)
2,0(3)
2,0(4)
2,0(5)
2,0(6)
2,0(7)
2,0(8)
在第 2 行,第 9 个位置找到 '['
2,9(9)
2,10(10)
2,0(11)
2,0(12)
2,13(13)
2,0(14)
2,0(15)
2,0(16)
2,0(17)
2,0(18)
2,0(19)                                       
在第 2 行,第 20 个位置找到 '['         
2,20(20)                                      
2,0(21)                                         
2,0(22)                                       
2,0(23)                                         
0,0(0)                                          
Press any key to continue
  1.         if (ch == '[') {  
  2.    printf("在第 %d 行,第 %d 个位置找到 '['\n", line, n);
  3.     s1z1[line]=line;
  4.     s1z2[n]=n;
  5. }
  6.         if (ch == ']') {  
  7.     printf("在第 %d 行,第 %d 个位置找到 ']'\n", line, n);
  8.     s1z1[line]=line;
  9.     s1z2[n]=n;
  10.        }
复制代码
在第 1 行,第 1 个位置找到 '['
1,1(1)
1,0(2)
1,0(3)
1,0(4)
1,0(5)
1,0(6)
1,0(7)
1,0(8)
在第 1 行,第 9 个位置找到 ']'
1,9(9)
在第 1 行,第 10 个位置找到 '['
1,10(10)
1,0(11)
在第 1 行,第 12 个位置找到 ']'
1,12(12)
在第 1 行,第 13 个位置找到 '['
1,13(13)
1,0(14)
1,0(15)
1,0(16)
在第 1 行,第 17 个位置找到 ']'
1,17(17)
0,0(0)
在第 2 行,第 1 个位置找到 '['
2,1(1)
2,0(2)
2,0(3)
2,0(4)
2,0(5)
2,0(6)
2,0(7)
在第 2 行,第 8 个位置找到 ']'
2,8(8)
在第 2 行,第 9 个位置找到 '['
2,9(9)
2,10(10)
2,0(11)
2,12(12)
2,13(13)
2,0(14)
2,0(15)
2,0(16)
2,17(17)
2,0(18)
在第 2 行,第 19 个位置找到 ']'
2,19(19)
在第 2 行,第 20 个位置找到 '['
2,20(20)
2,0(21)
2,0(22)
在第 2 行,第 23 个位置找到 ']'
2,23(23)
0,0(0)
Press any key to continue
凡是第一行的,取得最小数a1或a3,相对另一个为加+18的一行上下一字距离。
那么a2与a4怎么取呢?
取得任意一个[的数值,计数+1后续值,先把开始的第一个[定位值(左最小值)取得。然后取后面右边的模糊大概值,大概再逐渐校对准确,完成一个可行重复规律。
保留行数,每个文字按钮结束在行内,避免跨行的方形方框空间变形。
横向横线,英文和数字占1个位单元空间,中文占3个位单元空间。
只选择[字符的开始位置,之后相对固定一个定量空间跟随,不去管具体文本内容多大,也是可以的。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. int main(){
  10. int H0=400,I0=250;
  11.     initgraph(H0, I0);
  12.     FILE *file = fopen("1.txt", "r");  // 打开文件用于读取
  13.     int  line = 1;
  14.     int  n    = 0;
  15.     char ch      ;
  16. int s1z1[1024]={0};
  17. int s1z2[1024]={0};
  18. int a1,a2,a3,a4;
  19.     while ((ch = fgetc(file)) != EOF) { // 逐字符读取文件内容
  20.         n=n+1;     
  21.         if (ch == '[') {  
  22.    printf("在第 %d 行,第 %d 个位置找到 '['\n", line, n);
  23.     s1z1[line]=line;
  24.     s1z2[n]=n;
  25.         a1=s1z1[line];  a3=a1+20;
  26.         a2=s1z2[n]*18;  a4=(s1z2[n]+1)*18 ;
  27.                 rectangle(a1,a2,a3,a4);
  28. }
  29.        // if (ch == ']') {  
  30.    // printf("在第 %d 行,第 %d 个位置找到 ']'\n", line, n);
  31.    // s1z1[line]=line;
  32.    // s1z2[n]=n;
  33.        // }
  34.         if (ch == '\n') {
  35.             line=line+1;                // 行数增加
  36.             n = 0;                      // 重置位置计数器
  37.         }
  38.         printf("%d,%d(%d)\n", s1z1[line], s1z2[n],n);
  39.     }
  40.     fclose(file);                       // 关闭文件
  41.    
  42. getch();                            //暂停以便于观察程序
  43. closegraph();
  44. return 0;   
  45. }
复制代码


要怎么分行,行内容横过来才行。
if如是第一行,则a2和a4=a2+18的a2处于一个固定的变量值。随字符处理产生12345的序数,有一个相对大概的增量。这个增量怎么来?

TOP

本帖最后由 zzz19760225 于 2024-9-15 07:54 编辑

设置变量达到指定极限数字,就从头再来的循环,是可以自动播放的。那么问题到底出在哪里呢?
  1. #include <conio.h>                 //getch(),按键才能继续的暂停功能
  2. #include <stdio.h>                 //文字,没这功能显不了字
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <windows.h>
  6. #include <graphics.h>              //图画,没这功能显不了图画
  7. #include <mmsystem.h>              //声音,没这功能放不了音
  8. #pragma comment(lib,"winmm.lib")   //声音,没这功能放不了音
  9. #pragma comment(lib,"user32.lib")  //声音,没这功能放不了音
  10. #ifdef _MSC_VER                    //Five66变量三步曲
  11. #pragma warning(disable:4996)      //Five66变量三步曲
  12. #endif                             //Five66变量三步曲
  13. int main (){
  14.     char str[1024]={0};   //Five66变量三步曲
  15.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));          //Five66变量三步曲
  16. int H0=1200,I0=700;  //软件界面数量,H为左右,I为上下。
  17.     initgraph(H0, I0);   //打开界面绘画
  18. int H1=1200,I1=500;  //界面内图片区域数量,H为左右,I为上下。
  19.     int a = 0;
  20. int b=3000; //间隔速度的Sleep(变量)
  21.     RECT tu = {0, 0, 1200, 500};     //图片矩形区域 = 左, 顶, 右, 底
  22.     RECT bof = {1000, 500, 1200, 700};     //图片矩形区域 = 左, 顶, 右, 底
  23.     while (1)
  24. {Sleep(b);           // 避免过度占用CPU(这个到底管不管用,存疑?)
  25.    //  MOUSEMSG msg = GetMouseMsg();                                 //HOPE2021鼠标
  26.    //  if (msg.uMsg == WM_LBUTTONDOWN)                         {     //HOPE2021鼠标
  27.    //         POINT pt = {msg.x, msg.y};                             // 鼠标点击图片方位数量
  28.    //         clearrectangle(0,I1,H0,I0);  
  29.    //         if (PtInRect(&bof, pt)) {                              // 鼠标点击图片方位数量的区域有效
  30.    //         clearrectangle(0,I1,H0,I0);
  31.    //  settextstyle(20, 0, "微软雅黑"); // 设置文字大小为20,无倾斜,使用"微软雅黑"字体
  32.    // outtextxy(1000, 500, "已自动播放"); // 在窗口坐标(1100,500)处输出文本
  33.    // }}
  34.    // goto c;                                //HOPE2021鼠标
  35.    //   if (msg.uMsg == WM_LBUTTONDOWN)                         {     //HOPE2021鼠标
  36.    //         POINT pt = {msg.x, msg.y};                             // 鼠标点击图片方位数量
  37.    //        if (PtInRect(&tu, pt)) {                               // 鼠标点击图片方位数量的区域有效
  38.             wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("close"),a);  //Five66变量三步曲,关闭声音
  39.             mciSendString(szBuffer, NULL, 0, NULL);                //Five66变量三步曲,?
  40.             a=a+1;               
  41.     if( a>=53 ){ a=0; }  //若(变量开关a达到极限1000),则设置a为0从头再开始。
  42.             clearrectangle(0,I1,H0,I0);                       //}}   //刷新文字区域
  43.     // if (msg.uMsg == WM_RBUTTONDOWN)                         {     //HOPE2021鼠标
  44.     //       POINT pt = {msg.x, msg.y};                             // 鼠标点击图片方位数量
  45.     //       if (PtInRect(&tu, pt)) {                               // 鼠标点击图片方位数量的区域有效
  46.     //       wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("close"),a);  //Five66变量三步曲,关闭声音
  47.     //       mciSendString(szBuffer, NULL, 0, NULL);                //Five66变量三步曲,?
  48.     //       a=a-1;                                             
  49.     //       clearrectangle(0,I1,H0,I0);                       }}   //刷新文字区域
  50.           wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("play"),a); //Five66变量三步曲,播放声音
  51.               mciSendString(szBuffer, NULL, 0, NULL);              //Five66变量三步曲,?
  52.      
  53. // c:
  54.     settextstyle(20, 0, "微软雅黑"); // 设置文字大小为20,无倾斜,使用"微软雅黑"字体
  55.     outtextxy(1000, 520, "点击可切换图区自动播放"); // 在窗口坐标(1100,500)处输出文本
  56.     settextstyle(20, 0, "微软雅黑"); // 设置文字大小为20,无倾斜,使用"微软雅黑"字体
  57.     outtextxy(1110, 500, "手动"); // 在窗口坐标(1100,500)处输出文本
  58.      sprintf(str,"0/%d.jpg",a);                //Five66变量三步曲,图片变量
  59.             IMAGE img;                       //Five66变量三步曲,建立图片
  60.             loadimage(&img,str,H1,I1);       //Five66变量三步曲,载入图片
  61.             putimage(0, 0, &img);            //Five66变量三步曲,显示图片
  62.      sprintf(str,"%d.txt",a);                //Five66变量三步曲,文字文本文件变量
  63.      settextstyle(20, 0, "微软雅黑"); // 设置文字大小为20,无倾斜,使用"微软雅黑"字体
  64.             FILE *file = fopen(str, "r");    // 打开并读取文本文件
  65. if (file)
  66. {
  67.                  char buffer[1024];
  68.                  int y = 600;                // 假设图片下方开始显示文本,上下600位置写字
  69. char *line;
  70.                  while (fgets(buffer, sizeof(buffer), file))
  71. {                           // 逐行读取文件内容并显示
  72.                      line = strdup(buffer);  // 复制行以便修改
  73.                      outtextxy(20, y, line); // 显示文本,假设从(20, y)开始
  74.                      free(line);
  75.                      y += 20;                // 下一行的y坐标
  76. }
  77.              fclose(file);                   // 关闭文件
  78. }
  79. }
  80.     char filename[] = "1.txt";
  81.     FILE *file = fopen(filename, "r");      // 打开文件用于读取
  82.     if (file == NULL) {
  83.         printf("无法打开文件\n");
  84.         return 1;
  85.     }
  86.     int line = 1;
  87.     int n = 0;
  88.     char ch;
  89.    
  90.     while ((ch = fgetc(file)) != EOF)
  91. {//Sleep(5);            // 避免过度占用CPU (这个到底管不管用,存疑?)
  92.                    // 逐字符读取文件内容
  93.         n=n+1;            // 更新当前位置
  94.         if (ch == '[') {
  95.             printf("在第 %d 行,第 %d 个位置找到 '['\n", line, n);
  96.         }
  97.         if (ch == ']') {
  98.             printf("在第 %d 行,第 %d 个位置找到 ']'\n", line, n);
  99.         }
  100.         if (ch == '\n') {
  101.             line=line+1; // 行数增加
  102.             n = 0;       // 重置位置计数器
  103.         }
  104.     a=a+1;
  105.     //Sleep(b);
  106. //goto c;
  107.     }
  108.     if(szBuffer != NULL) { free(szBuffer);szBuffer=NULL; } //释放变量
  109.     closegraph();
  110. return 0;
  111. }
复制代码
不用专门的中断调度信息记录,那样增加麻烦。就是变量本身的状态切换实现连接,就可以。这样从自动播放状态,中断调度切换为手动时,处于一个变量增量,再换成自动,依然是那个变量为针线继续。
好像是有鼠标可以点击在软件界面外面的,这样在软件标题上写字,对应字的位置进行界面外点击联系连接功能,是不是可以利用那个空间呢?(得看那个功能有没有)
---------------------------------------用负数是无法显示出来的,不行。   
    rectangle(-10, -10, -200, 40);    // 绘制带有边框的标题矩形




或许可能是可以通过变量自动完成文字按钮的布置,有可以制作的规律?
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <graphics.h>
  8. #include <easyx.h>
  9. #include <mmsystem.h>
  10. #pragma comment(lib,"winmm.lib")
  11. #pragma comment(lib,"user32.lib")
  12. #ifdef _MSC_VER
  13. #pragma warning(disable:4996)
  14. #endif
  15. int main()
  16. {
  17. int H0=1000,I0=500;
  18.     initgraph(H0, I0);
  19. int a=0;
  20.     char str[1024]={0};
  21.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));
  22.         setfont(20, 0, "宋体"); // 设置字体大小为20,指定字体为“宋体”
  23.     char filename[] = "1.txt";
  24.     FILE *file = fopen(filename, "r"); // 打开文件用于读取
  25.     if (file == NULL) {
  26.         printf("无法打开文件\n");
  27.         return 1;
  28.     }
  29.     int line = 1;
  30.     int position = 0;
  31.     char ch;
  32.     // 逐字符读取文件内容
  33.     while ((ch = fgetc(file)) != EOF) {
  34.         position++; // 更新当前位置
  35.         if (ch == '[') {printf("在第 %d 行,第 %d 个位置找到 '['\n", line, position);}
  36.         if (ch == ']') {printf("在第 %d 行,第 %d 个位置找到 ']'\n", line, position);}
  37.         if (ch == '\n') {
  38.             line++; // 行数增加
  39.             position = 0; // 重置位置计数器
  40.         }
  41.     }
  42. a=a+1;
  43.     sprintf(str,"%d.txt",a);
  44.             FILE *file1 = fopen(str, "r");// 打开并读取文本文件
  45. if (file1)
  46. {
  47.                  char buffer[1024];
  48.                  int y = 0; // 假设图片下方开始显示文本,上下600位置写字
  49. char *line1;
  50.                  while (fgets(buffer, sizeof(buffer), file1))
  51. {// 逐行读取文件内容并显示
  52.                      line1 = strdup(buffer); // 复制行以便修改
  53.                      outtextxy(20, y, line1); // 显示文本,假设从(20, y)开始
  54.                      free(line1);
  55.                      y += 20;               // 下一行的y坐标
  56. }
  57.              fclose(file1); // 关闭文件
  58. }
  59.     //七个文字按钮的模拟假设
  60. int H1,H2,H3,H4,H5,H6,H7;
  61. int I1,I2,I3,I4,I5,I6,I7;
  62.     int L1_1,L1_2,L1_3,L1_4,   L2_1,L2_2,L2_3,L2_4,   L3_1,L3_2,L3_3,L3_4,   L4_1,L4_2,L4_3,L4_4;
  63.     int L5_1,L5_2,L5_3,L5_4,   L6_1,L6_2,L6_3,L6_4,   L7_1,L7_2,L7_3,L7_4;
  64.    
  65.     H1=22,   H2=42,   H3=0,    H4=0,   H5=0,   H6=0,H7=0; //初始[行列定位
  66.     I1=0,    I2=20,   I3=0,    I4=0,   I5=0,   I6=0,I7=0;
  67.     //初始[行列定位,其对应的]行列定位?(需要文字处理的那个数据,怎么进行变量化)
  68.     L1_1=H1,  L1_2=I1,  L1_3=H1+15,  L1_4=I1+18;
  69. L2_1=H2,  L2_2=I2,  L2_3=H2+26,  L2_4=I2+18;   
  70. L3_1=0,L3_2=0,L3_3=0,L3_4=0;   
  71. L4_1=0,L4_2=0,L4_3=0,L4_4=0;   
  72.     L5_1=0,L5_2=0,L5_3=0,L5_4=0;   
  73. L6_1=0,L6_2=0,L6_3=0,L6_4=0;   
  74. L7_1=0,L7_2=0,L7_3=0,L7_4=0;
  75. //模拟键盘和鼠标点击的方框(以之临时代表,后续对应内容替换就可以)
  76.     rectangle(L1_1,L1_2,L1_3,L1_4);  // 绘制带有边框的标题矩形,H开左,I开下,H关右,I关上,H=15,I=18
  77.     rectangle(L2_1,L2_2,L2_3,L2_4);
  78.     rectangle(L3_1,L3_2,L3_3,L3_4);
  79.     rectangle(L4_1,L4_2,L4_3,L4_4);
  80.     rectangle(L5_1,L5_2,L5_3,L5_4);
  81.     rectangle(L6_1,L6_2,L6_3,L6_4);
  82.     rectangle(L7_1,L7_2,L7_3,L7_4);
  83.     system("pause"); // 暂停,以便查看输出结果
  84.     closegraph();
  85.     if(szBuffer != NULL) {free(szBuffer);szBuffer=NULL;}
  86.     return 0;
  87. }
复制代码

手工填入,校对的数量,需要换成信息机器自动完成的,变量联系连接传递,组合的关系。

TOP

本帖最后由 zzz19760225 于 2024-9-14 09:42 编辑

图文声,电影播放模式,去掉鼠标选择综合间隔Sleep(300什么毫米)就可以了。

自动播放不那么好弄,怎么才能将鼠标点击与跳过,进行循环图片播放的电影,并列呢?(goto也不好用了,真如所说,跳飞到不知道哪里去了)
自动播放可以去掉其余的,先全部自动播放,这样思维空间干净,没有牵绊阻碍,容易看清楚简单内容。

界面页面:显示空间区域的专用,组用,通用,(屏幕或显存的人眼交换流态空间)
结构功能:命令概念区域的专用,组用,通用。(储存取的信息数据空间,逻辑单元组合的信息体和结构功能空间)
  1. #include <conio.h>                 //getch(),按键才能继续的暂停功能
  2. #include <stdio.h>                 //文字,没这功能显不了字
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <windows.h>
  6. #include <graphics.h>              //图画,没这功能显不了图画
  7. #include <mmsystem.h>              //声音,没这功能放不了音
  8. #pragma comment(lib,"winmm.lib")   //声音,没这功能放不了音
  9. #pragma comment(lib,"user32.lib")  //声音,没这功能放不了音
  10. #ifdef _MSC_VER                    //Five66变量三步曲
  11. #pragma warning(disable:4996)      //Five66变量三步曲
  12. #endif                             //Five66变量三步曲
  13. int main (){
  14.     char str[1024]={0};   //Five66变量三步曲
  15.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));          //Five66变量三步曲
  16. int H0=1200,I0=700;  //软件界面数量,H为左右,I为上下。
  17.     initgraph(H0, I0);   //打开界面绘画
  18. int H1=1200,I1=500;  //界面内图片区域数量,H为左右,I为上下。
  19.     int a = 0;
  20. int b=10; //间隔速度变量
  21.     RECT tu = {0, 0, 1200, 500};     //图片矩形区域 = 左, 顶, 右, 底
  22.     RECT bof = {1000, 500, 1200, 700};     //图片矩形区域 = 左, 顶, 右, 底
  23.     while (1)
  24. {//Sleep(5);           // 避免过度占用CPU(这个到底管不管用,存疑?)
  25.      MOUSEMSG msg = GetMouseMsg();                                 //HOPE2021鼠标
  26.      if (msg.uMsg == WM_LBUTTONDOWN)                         {     //HOPE2021鼠标
  27.             POINT pt = {msg.x, msg.y};                             // 鼠标点击图片方位数量
  28.             clearrectangle(0,I1,H0,I0);  
  29.             if (PtInRect(&bof, pt)) {                              // 鼠标点击图片方位数量的区域有效
  30.             clearrectangle(0,I1,H0,I0);
  31.     settextstyle(20, 0, "微软雅黑"); // 设置文字大小为20,无倾斜,使用"微软雅黑"字体
  32.     outtextxy(1000, 500, "已自动播放"); // 在窗口坐标(1100,500)处输出文本
  33. goto c;
  34. }}
  35.                                 //HOPE2021鼠标
  36.      if (msg.uMsg == WM_LBUTTONDOWN)                         {     //HOPE2021鼠标
  37.             POINT pt = {msg.x, msg.y};                             // 鼠标点击图片方位数量
  38.             if (PtInRect(&tu, pt)) {                               // 鼠标点击图片方位数量的区域有效
  39.             wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("close"),a);  //Five66变量三步曲,关闭声音
  40.             mciSendString(szBuffer, NULL, 0, NULL);                //Five66变量三步曲,?
  41.             a=a+1;                                               
  42.             clearrectangle(0,I1,H0,I0);                       }}   //刷新文字区域
  43.      if (msg.uMsg == WM_RBUTTONDOWN)                         {     //HOPE2021鼠标
  44.             POINT pt = {msg.x, msg.y};                             // 鼠标点击图片方位数量
  45.             if (PtInRect(&tu, pt)) {                               // 鼠标点击图片方位数量的区域有效
  46.             wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("close"),a);  //Five66变量三步曲,关闭声音
  47.             mciSendString(szBuffer, NULL, 0, NULL);                //Five66变量三步曲,?
  48.             a=a-1;                                             
  49.             clearrectangle(0,I1,H0,I0);                       }}   //刷新文字区域
  50.           wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("play"),a); //Five66变量三步曲,播放声音
  51.               mciSendString(szBuffer, NULL, 0, NULL);              //Five66变量三步曲,?
  52.      Sleep(b);
  53. c:
  54.     settextstyle(20, 0, "微软雅黑"); // 设置文字大小为20,无倾斜,使用"微软雅黑"字体
  55.     outtextxy(1000, 520, "点击可切换图区自动播放"); // 在窗口坐标(1100,500)处输出文本
  56.     settextstyle(20, 0, "微软雅黑"); // 设置文字大小为20,无倾斜,使用"微软雅黑"字体
  57.     outtextxy(1110, 500, "手动"); // 在窗口坐标(1100,500)处输出文本
  58.      sprintf(str,"%d.jpg",a);                //Five66变量三步曲,图片变量
  59.             IMAGE img;                       //Five66变量三步曲,建立图片
  60.             loadimage(&img,str,H1,I1);       //Five66变量三步曲,载入图片
  61.             putimage(0, 0, &img);            //Five66变量三步曲,显示图片
  62.      sprintf(str,"%d.txt",a);                //Five66变量三步曲,文字文本文件变量
  63.      settextstyle(20, 0, "微软雅黑"); // 设置文字大小为20,无倾斜,使用"微软雅黑"字体
  64.             FILE *file = fopen(str, "r");    // 打开并读取文本文件
  65. if (file)
  66. {
  67.                  char buffer[1024];
  68.                  int y = 600;                // 假设图片下方开始显示文本,上下600位置写字
  69. char *line;
  70.                  while (fgets(buffer, sizeof(buffer), file))
  71. {                           // 逐行读取文件内容并显示
  72.                      line = strdup(buffer);  // 复制行以便修改
  73.                      outtextxy(20, y, line); // 显示文本,假设从(20, y)开始
  74.                      free(line);
  75.                      y += 20;                // 下一行的y坐标
  76. }
  77.              fclose(file);                   // 关闭文件
  78. }
  79. }
  80.     char filename[] = "1.txt";
  81.     FILE *file = fopen(filename, "r");      // 打开文件用于读取
  82.     if (file == NULL) {
  83.         printf("无法打开文件\n");
  84.         return 1;
  85.     }
  86.     int line = 1;
  87.     int n = 0;
  88.     char ch;
  89.    
  90.     while ((ch = fgetc(file)) != EOF)
  91. {//Sleep(5);            // 避免过度占用CPU (这个到底管不管用,存疑?)
  92.                    // 逐字符读取文件内容
  93.         n=n+1;            // 更新当前位置
  94.         if (ch == '[') {
  95.             printf("在第 %d 行,第 %d 个位置找到 '['\n", line, n);
  96.         }
  97.         if (ch == ']') {
  98.             printf("在第 %d 行,第 %d 个位置找到 ']'\n", line, n);
  99.         }
  100.         if (ch == '\n') {
  101.             line=line+1; // 行数增加
  102.             n = 0;       // 重置位置计数器
  103.         }
  104.     a=a+1;
  105.     Sleep(b);
  106. goto c;
  107.     }
  108.     if(szBuffer != NULL) { free(szBuffer);szBuffer=NULL; } //释放变量
  109.     closegraph();
  110. return 0;
  111. }
复制代码

好像需要一个使用者的用户设置界面,类似列表。(要是把题眉那个空间用起来就好了,批处理是可以放动态内容的)
跳出循环,但是设置后又跳回到循环的已有状态,继续前面记录(中断那个调度)。
C语言是否有通用的文本文件字符处理单元的基本组合综合集合体,一个就基本够用了?

TOP

本帖最后由 zzz19760225 于 2024-9-13 16:14 编辑

可以点击图片区域,与文字区域可以区别开来。(但是,有代码跑到int main外面,很不习惯的。要是有可以收进去一体的,感觉上也许会好一些)

如何用少的内容,建立文字按钮对应的鼠标点击概念空间单元。无限点击单元,有限,极限,惯常,默认的数量圈层级。
  1. #include <conio.h>                 //getch(),按键才能继续的暂停功能
  2. #include <stdio.h>                 //文字,没这功能显不了字
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <windows.h>
  6. #include <graphics.h>              //图画,没这功能显不了图画
  7. #include <mmsystem.h>              //声音,没这功能放不了音
  8. #pragma comment(lib,"winmm.lib")   //声音,没这功能放不了音
  9. #pragma comment(lib,"user32.lib")  //声音,没这功能放不了音
  10. #ifdef _MSC_VER                   //Five66变量三步曲
  11. #pragma warning(disable:4996)     //Five66变量三步曲
  12. #endif                            //Five66变量三步曲
  13.                          // 检测鼠标是否点击在矩形区域内
  14.    int shu1(int x, int y, int width, int height)
  15.    {
  16. MOUSEMSG msg = GetMouseMsg();
  17.      return msg.x >= x && msg.x <= x + width && msg.y >= y && msg.y <= y + height;
  18.    }
  19. int main (){
  20.     char str[1024]={0};   //Five66变量三步曲
  21.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));          //Five66变量三步曲
  22. int H0=1200,I0=700;  //软件界面数量,H为左右,I为上下。
  23.     initgraph(H0, I0);   //打开界面绘画
  24. int H1=1200,I1=500;  //界面内图片区域数量,H为左右,I为上下。
  25.     int a = 0;
  26.                          // 定义矩形区域
  27.     int shu1_x = 0;      //左上角
  28.     int shu1_y = 0;      //左上角
  29.     int shu1_width = H1; //右下角,跟着图片数量跑,H为左右,I为上下。
  30.     int shu1_height =I1; //右下角,跟着图片数量跑,H为左右,I为上下。
  31.     while (1)
  32. {Sleep(5);           // 避免过度占用CPU(这个到底管不管用,存疑?)
  33.      MOUSEMSG msg = GetMouseMsg();                                 //HOPE2021鼠标
  34.      if (msg.uMsg == WM_LBUTTONDOWN)                         {     //HOPE2021鼠标
  35. if (shu1(shu1_x, shu1_y, shu1_width, shu1_height))  {     // 鼠标点击图片方位数量的区域有效
  36.             wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("close"),a);  //Five66变量三步曲,关闭声音
  37.             mciSendString(szBuffer, NULL, 0, NULL);                //Five66变量三步曲,?
  38.             a=a+1;                                               
  39.             clearrectangle(0,I1,H0,I0);                        }}  //刷新文字区域
  40.      if (msg.uMsg == WM_RBUTTONDOWN)                         {     //HOPE2021鼠标
  41. if (shu1(shu1_x, shu1_y, shu1_width, shu1_height))  {     // 鼠标点击图片方位数量的区域有效
  42.             wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("close"),a);  //Five66变量三步曲,关闭声音
  43.             mciSendString(szBuffer, NULL, 0, NULL);                //Five66变量三步曲,?
  44.             a=a-1;                                             
  45.             clearrectangle(0,I1,H0,I0);                        }}  //刷新文字区域
  46.           wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("play"),a); //Five66变量三步曲,播放声音
  47.               mciSendString(szBuffer, NULL, 0, NULL);              //Five66变量三步曲,?
  48.          
  49.      sprintf(str,"%d.jpg",a);                //Five66变量三步曲,图片变量
  50.             IMAGE img;                       //Five66变量三步曲,建立图片
  51.             loadimage(&img,str,H1,I1);       //Five66变量三步曲,载入图片
  52.             putimage(0, 0, &img);            //Five66变量三步曲,显示图片
  53.      sprintf(str,"%d.txt",a);                //Five66变量三步曲,文字文本文件变量
  54.             FILE *file = fopen(str, "r");    // 打开并读取文本文件
  55. if (file)
  56. {
  57.                  char buffer[1024];
  58.                  int y = 600;                // 假设图片下方开始显示文本,上下600位置写字
  59. char *line;
  60.                  while (fgets(buffer, sizeof(buffer), file))
  61. {                           // 逐行读取文件内容并显示
  62.                      line = strdup(buffer);  // 复制行以便修改
  63.                      outtextxy(20, y, line); // 显示文本,假设从(20, y)开始
  64.                      free(line);
  65.                      y += 20;                // 下一行的y坐标
  66. }
  67.              fclose(file);                   // 关闭文件
  68. }
  69. }
  70.     char filename[] = "1.txt";
  71.     FILE *file = fopen(filename, "r");      // 打开文件用于读取
  72.     if (file == NULL) {
  73.         printf("无法打开文件\n");
  74.         return 1;
  75.     }
  76.     int line = 1;
  77.     int n = 0;
  78.     char ch;
  79.    
  80.     while ((ch = fgetc(file)) != EOF)
  81. {Sleep(5);            // 这个到底管不管用,存疑?
  82.                    // 逐字符读取文件内容
  83.         n=n+1;            // 更新当前位置
  84.         if (ch == '[') {
  85.             printf("在第 %d 行,第 %d 个位置找到 '['\n", line, n);
  86.         }
  87.         if (ch == ']') {
  88.             printf("在第 %d 行,第 %d 个位置找到 ']'\n", line, n);
  89.         }
  90.         if (ch == '\n') {
  91.             line=line+1; // 行增加
  92.             n = 0;       // 重置位置计数
  93.         }
  94.     }
  95.     if(szBuffer != NULL) { free(szBuffer);szBuffer=NULL; } //释放变量
  96.     closegraph();
  97. return 0;
  98. }
复制代码
需要布置:1电影自动播放形式(flash播放画面=动画。操作与播放冲突?)。2鼠标点击的文字按钮,其数量的无限有限极限惯常默认。(一般有三五个,最多十个,就够大部分人的基本需求了)
这两个功能之后,就是无限数量一体化的内容了,也就是字符组合关系的数量概念,更简化简单自由度一些。
  1. #include <conio.h>                 //getch(),按键才能继续的暂停功能
  2. #include <stdio.h>                 //文字,没这功能显不了字
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <windows.h>
  6. #include <graphics.h>              //图画,没这功能显不了图画
  7. #include <mmsystem.h>              //声音,没这功能放不了音
  8. #pragma comment(lib,"winmm.lib")   //声音,没这功能放不了音
  9. #pragma comment(lib,"user32.lib")  //声音,没这功能放不了音
  10. #ifdef _MSC_VER                   //Five66变量三步曲
  11. #pragma warning(disable:4996)     //Five66变量三步曲
  12. #endif                            //Five66变量三步曲
  13. int main (){
  14.     char str[1024]={0};   //Five66变量三步曲
  15.     TCHAR *szBuffer=(TCHAR *)calloc(1024,sizeof(TCHAR));          //Five66变量三步曲
  16. int H0=1200,I0=700;  //软件界面数量,H为左右,I为上下。
  17.     initgraph(H0, I0);   //打开界面绘画
  18. int H1=1200,I1=500;  //界面内图片区域数量,H为左右,I为上下。
  19.     int a = 0;
  20.     RECT rect = {0, 0, 1200, 500}; //矩形区域 = 左, 顶, 右, 底
  21.     while (1)
  22. {//Sleep(5);           // 避免过度占用CPU(这个到底管不管用,存疑?)
  23.      MOUSEMSG msg = GetMouseMsg();                                 //HOPE2021鼠标
  24.      if (msg.uMsg == WM_LBUTTONDOWN)                         {     //HOPE2021鼠标
  25.             POINT pt = {msg.x, msg.y};                             // 鼠标点击图片方位数量
  26.             if (PtInRect(&rect, pt)) {                             // 鼠标点击图片方位数量的区域有效
  27.             wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("close"),a);  //Five66变量三步曲,关闭声音
  28.             mciSendString(szBuffer, NULL, 0, NULL);                //Five66变量三步曲,?
  29.             a=a+1;                                               
  30.             clearrectangle(0,I1,H0,I0);                       }}   //刷新文字区域
  31.      if (msg.uMsg == WM_RBUTTONDOWN)                         {     //HOPE2021鼠标
  32.             POINT pt = {msg.x, msg.y};                             // 鼠标点击图片方位数量
  33.             if (PtInRect(&rect, pt)) {                             // 鼠标点击图片方位数量的区域有效
  34.             wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("close"),a);  //Five66变量三步曲,关闭声音
  35.             mciSendString(szBuffer, NULL, 0, NULL);                //Five66变量三步曲,?
  36.             a=a-1;                                             
  37.             clearrectangle(0,I1,H0,I0);                       }}   //刷新文字区域
  38.           wsprintf(szBuffer,TEXT("%s %d.mp3"),TEXT("play"),a); //Five66变量三步曲,播放声音
  39.               mciSendString(szBuffer, NULL, 0, NULL);              //Five66变量三步曲,?
  40.          
  41.      sprintf(str,"%d.jpg",a);                //Five66变量三步曲,图片变量
  42.             IMAGE img;                       //Five66变量三步曲,建立图片
  43.             loadimage(&img,str,H1,I1);       //Five66变量三步曲,载入图片
  44.             putimage(0, 0, &img);            //Five66变量三步曲,显示图片
  45.      sprintf(str,"%d.txt",a);                //Five66变量三步曲,文字文本文件变量
  46.             FILE *file = fopen(str, "r");    // 打开并读取文本文件
  47. if (file)
  48. {
  49.                  char buffer[1024];
  50.                  int y = 600;                // 假设图片下方开始显示文本,上下600位置写字
  51. char *line;
  52.                  while (fgets(buffer, sizeof(buffer), file))
  53. {                           // 逐行读取文件内容并显示
  54.                      line = strdup(buffer);  // 复制行以便修改
  55.                      outtextxy(20, y, line); // 显示文本,假设从(20, y)开始
  56.                      free(line);
  57.                      y += 20;                // 下一行的y坐标
  58. }
  59.              fclose(file);                   // 关闭文件
  60. }
  61. }
  62.     char filename[] = "1.txt";
  63.     FILE *file = fopen(filename, "r");      // 打开文件用于读取
  64.     if (file == NULL) {
  65.         printf("无法打开文件\n");
  66.         return 1;
  67.     }
  68.     int line = 1;
  69.     int n = 0;
  70.     char ch;
  71.    
  72.     while ((ch = fgetc(file)) != EOF)
  73. {//Sleep(5);            // 避免过度占用CPU (这个到底管不管用,存疑?)
  74.                    // 逐字符读取文件内容
  75.         n=n+1;            // 更新当前位置
  76.         if (ch == '[') {
  77.             printf("在第 %d 行,第 %d 个位置找到 '['\n", line, n);
  78.         }
  79.         if (ch == ']') {
  80.             printf("在第 %d 行,第 %d 个位置找到 ']'\n", line, n);
  81.         }
  82.         if (ch == '\n') {
  83.             line=line+1; // 行数增加
  84.             n = 0;       // 重置位置计数器
  85.         }
  86.     }
  87.     if(szBuffer != NULL) { free(szBuffer);szBuffer=NULL; } //释放变量
  88.     closegraph();
  89. return 0;
  90. }
复制代码

TOP

返回列表