鱼C论坛

 找回密码
 立即注册
查看: 4350|回复: 6

[已解决]c语言程序分页打印信息???

[复制链接]
发表于 2018-4-28 16:51:56 | 显示全部楼层 |阅读模式

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

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

x
怎样把几十条信息实现分页打印,并且有首页 下一页 上一页 最后一页选项
最佳答案
2018-4-29 16:00:43
我不知道你要表达的是不是这个意思,还有我把选项和谐了。。。改成按键了。。
↑上一页  ↓下一页  ←第一页   →最后一页
QQ截图20180429155824.jpg


  1. #include <stdio.h>

  2. // 最大页数
  3. #define PAGE_MAX 5  

  4. // 最大行数
  5. #define RANKED_MAX 5

  6. //每行最大字符数
  7. #define STR_MAX 5

  8. int main(void){
  9.        
  10.         char str[PAGE_MAX][RANKED_MAX][STR_MAX] = {
  11.        
  12.                 {{"1BCD"},{"1BCD"},{"1BCD"},{"1BCD"},{"1BCD"},},
  13.        
  14.                 {{"2BCD"},{"2BCD"},{"2BCD"},{"2BCD"},{"2BCD"},},
  15.        
  16.                 {{"3BCD"},{"3BCD"},{"3BCD"},{"3BCD"},{"3BCD"},},
  17.                
  18.                 {{"4BCD"},{"4BCD"},{"4BCD"},{"4BCD"},{"4BCD"},},
  19.                
  20.                 {{"5BCD"},{"5BCD"},{"5BCD"},{"5BCD"},{"5BCD"},}       
  21.         };
  22.        
  23.         char (*p)[RANKED_MAX][STR_MAX] = str;
  24.        
  25.        
  26.         int i;
  27.         for (i = 0; i < PAGE_MAX; i++){
  28.                         printf ("%s\n", (*(p)+i));
  29.                
  30.         }
  31.         printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,1);
  32.        
  33.        
  34.         int count = 0;       
  35.         do {
  36.                 switch(getch()){
  37.                        
  38.                         case 72:  // 上键 上一页
  39.                                 if (count >= 0 && count < PAGE_MAX){
  40.                                         count--;
  41.                                         // 检查一下以免越界
  42.                                         if (count < 0){       
  43.                                                 count = 0;  
  44.                                         }
  45.                                         system("cls");
  46.                                        
  47.                                         for (i = 0; i < PAGE_MAX; i++){
  48.                                                 printf ("%s\n", (*(p+count)+i));
  49.                                         }
  50.                                        
  51.                                         printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1);
  52.                                 }
  53.                                 break;
  54.                                
  55.                        
  56.                         case 80:  // 下键  下一页
  57.                                 if (count >= 0 && count < PAGE_MAX-1){
  58.                                         system("cls");
  59.                                         count++;
  60.                                         for (i = 0; i < PAGE_MAX; i++){
  61.                                                 printf ("%s\n", (*(p+count)+i));
  62.                                         }
  63.                                         printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1);
  64.                                 }
  65.                                 break;
  66.                                
  67.                                
  68.                         case 75:  // 左键  第一页
  69.                                         system("cls");
  70.                                         count = 0;
  71.                                         for (i = 0; i < PAGE_MAX; i++){
  72.                                                 printf ("%s\n", (*(p)+i));
  73.                                         }
  74.                                         printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1);
  75.                                 break;
  76.                                
  77.                         case 77:  // 右键  最后一页
  78.                                         system("cls");
  79.                                         count = PAGE_MAX-1;
  80.                                         for (i = 0; i < PAGE_MAX; i++){
  81.                                                 printf ("%s\n", (*(p+count)+i));
  82.                                         }
  83.                                         printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1);
  84.                                 break;
  85.                         }
  86.                        
  87.         }while(1);

  88.         return 0;
  89. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-4-29 11:25:25 | 显示全部楼层
有人吗???
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-29 13:07:58 | 显示全部楼层

C语言以及控制台窗口,好像没有提供这样的函数,要完成这个功能,那就自己写代码管理这些 “页”
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-29 13:20:44 | 显示全部楼层
人造人 发表于 2018-4-29 13:07
C语言以及控制台窗口,好像没有提供这样的函数,要完成这个功能,那就自己写代码管理这些 “页”

可以给个思路??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-29 16:00:43 | 显示全部楼层    本楼为最佳答案   
我不知道你要表达的是不是这个意思,还有我把选项和谐了。。。改成按键了。。
↑上一页  ↓下一页  ←第一页   →最后一页
QQ截图20180429155824.jpg


  1. #include <stdio.h>

  2. // 最大页数
  3. #define PAGE_MAX 5  

  4. // 最大行数
  5. #define RANKED_MAX 5

  6. //每行最大字符数
  7. #define STR_MAX 5

  8. int main(void){
  9.        
  10.         char str[PAGE_MAX][RANKED_MAX][STR_MAX] = {
  11.        
  12.                 {{"1BCD"},{"1BCD"},{"1BCD"},{"1BCD"},{"1BCD"},},
  13.        
  14.                 {{"2BCD"},{"2BCD"},{"2BCD"},{"2BCD"},{"2BCD"},},
  15.        
  16.                 {{"3BCD"},{"3BCD"},{"3BCD"},{"3BCD"},{"3BCD"},},
  17.                
  18.                 {{"4BCD"},{"4BCD"},{"4BCD"},{"4BCD"},{"4BCD"},},
  19.                
  20.                 {{"5BCD"},{"5BCD"},{"5BCD"},{"5BCD"},{"5BCD"},}       
  21.         };
  22.        
  23.         char (*p)[RANKED_MAX][STR_MAX] = str;
  24.        
  25.        
  26.         int i;
  27.         for (i = 0; i < PAGE_MAX; i++){
  28.                         printf ("%s\n", (*(p)+i));
  29.                
  30.         }
  31.         printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,1);
  32.        
  33.        
  34.         int count = 0;       
  35.         do {
  36.                 switch(getch()){
  37.                        
  38.                         case 72:  // 上键 上一页
  39.                                 if (count >= 0 && count < PAGE_MAX){
  40.                                         count--;
  41.                                         // 检查一下以免越界
  42.                                         if (count < 0){       
  43.                                                 count = 0;  
  44.                                         }
  45.                                         system("cls");
  46.                                        
  47.                                         for (i = 0; i < PAGE_MAX; i++){
  48.                                                 printf ("%s\n", (*(p+count)+i));
  49.                                         }
  50.                                        
  51.                                         printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1);
  52.                                 }
  53.                                 break;
  54.                                
  55.                        
  56.                         case 80:  // 下键  下一页
  57.                                 if (count >= 0 && count < PAGE_MAX-1){
  58.                                         system("cls");
  59.                                         count++;
  60.                                         for (i = 0; i < PAGE_MAX; i++){
  61.                                                 printf ("%s\n", (*(p+count)+i));
  62.                                         }
  63.                                         printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1);
  64.                                 }
  65.                                 break;
  66.                                
  67.                                
  68.                         case 75:  // 左键  第一页
  69.                                         system("cls");
  70.                                         count = 0;
  71.                                         for (i = 0; i < PAGE_MAX; i++){
  72.                                                 printf ("%s\n", (*(p)+i));
  73.                                         }
  74.                                         printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1);
  75.                                 break;
  76.                                
  77.                         case 77:  // 右键  最后一页
  78.                                         system("cls");
  79.                                         count = PAGE_MAX-1;
  80.                                         for (i = 0; i < PAGE_MAX; i++){
  81.                                                 printf ("%s\n", (*(p+count)+i));
  82.                                         }
  83.                                         printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1);
  84.                                 break;
  85.                         }
  86.                        
  87.         }while(1);

  88.         return 0;
  89. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2018-4-30 09:08:23 | 显示全部楼层
风过无痕丶 发表于 2018-4-29 16:00
我不知道你要表达的是不是这个意思,还有我把选项和谐了。。。改成按键了。。
↑上一页  ↓下一页  ←第一 ...

好犀利 为什么我c语言就是学不好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-30 13:47:39 From FishC Mobile | 显示全部楼层
ssg 发表于 2018-4-30 09:08
好犀利 为什么我c语言就是学不好

多动手,多敲代码,永远不要把知识停留在理论阶段
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 07:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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