鱼C论坛

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

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

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

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

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

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

#include <stdio.h>

// 最大页数 
#define PAGE_MAX 5  

// 最大行数 
#define RANKED_MAX 5

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

int main(void){
        
        char str[PAGE_MAX][RANKED_MAX][STR_MAX] = {
        
                {{"1BCD"},{"1BCD"},{"1BCD"},{"1BCD"},{"1BCD"},},
        
                {{"2BCD"},{"2BCD"},{"2BCD"},{"2BCD"},{"2BCD"},},
        
                {{"3BCD"},{"3BCD"},{"3BCD"},{"3BCD"},{"3BCD"},},
                
                {{"4BCD"},{"4BCD"},{"4BCD"},{"4BCD"},{"4BCD"},},
                
                {{"5BCD"},{"5BCD"},{"5BCD"},{"5BCD"},{"5BCD"},}        
        };
        
        char (*p)[RANKED_MAX][STR_MAX] = str;
        
        
        int i;
        for (i = 0; i < PAGE_MAX; i++){
                        printf ("%s\n", (*(p)+i));
                
        }
        printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,1); 
        
        
        int count = 0;        
        do {
                switch(getch()){
                        
                        case 72:  // 上键 上一页 
                                if (count >= 0 && count < PAGE_MAX){
                                        count--;
                                        // 检查一下以免越界 
                                        if (count < 0){        
                                                count = 0;  
                                        }
                                        system("cls"); 
                                        
                                        for (i = 0; i < PAGE_MAX; i++){
                                                printf ("%s\n", (*(p+count)+i));
                                        }
                                        
                                        printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1); 
                                }
                                break;
                                
                        
                        case 80:  // 下键  下一页 
                                if (count >= 0 && count < PAGE_MAX-1){
                                        system("cls");
                                        count++;
                                        for (i = 0; i < PAGE_MAX; i++){
                                                printf ("%s\n", (*(p+count)+i));
                                        }
                                        printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1); 
                                }
                                break;
                                
                                
                        case 75:  // 左键  第一页
                                        system("cls");
                                        count = 0;
                                        for (i = 0; i < PAGE_MAX; i++){
                                                printf ("%s\n", (*(p)+i));
                                        }
                                        printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1); 
                                break;
                                
                        case 77:  // 右键  最后一页 
                                        system("cls");
                                        count = PAGE_MAX-1;
                                        for (i = 0; i < PAGE_MAX; i++){
                                                printf ("%s\n", (*(p+count)+i));
                                        }
                                        printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1); 
                                break;
                        }
                        
        }while(1);

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

使用道具 举报

 楼主| 发表于 2018-4-29 11:25:25 | 显示全部楼层
有人吗???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

C语言以及控制台窗口,好像没有提供这样的函数,要完成这个功能,那就自己写代码管理这些 “页”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

可以给个思路??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

#include <stdio.h>

// 最大页数 
#define PAGE_MAX 5  

// 最大行数 
#define RANKED_MAX 5

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

int main(void){
        
        char str[PAGE_MAX][RANKED_MAX][STR_MAX] = {
        
                {{"1BCD"},{"1BCD"},{"1BCD"},{"1BCD"},{"1BCD"},},
        
                {{"2BCD"},{"2BCD"},{"2BCD"},{"2BCD"},{"2BCD"},},
        
                {{"3BCD"},{"3BCD"},{"3BCD"},{"3BCD"},{"3BCD"},},
                
                {{"4BCD"},{"4BCD"},{"4BCD"},{"4BCD"},{"4BCD"},},
                
                {{"5BCD"},{"5BCD"},{"5BCD"},{"5BCD"},{"5BCD"},}        
        };
        
        char (*p)[RANKED_MAX][STR_MAX] = str;
        
        
        int i;
        for (i = 0; i < PAGE_MAX; i++){
                        printf ("%s\n", (*(p)+i));
                
        }
        printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,1); 
        
        
        int count = 0;        
        do {
                switch(getch()){
                        
                        case 72:  // 上键 上一页 
                                if (count >= 0 && count < PAGE_MAX){
                                        count--;
                                        // 检查一下以免越界 
                                        if (count < 0){        
                                                count = 0;  
                                        }
                                        system("cls"); 
                                        
                                        for (i = 0; i < PAGE_MAX; i++){
                                                printf ("%s\n", (*(p+count)+i));
                                        }
                                        
                                        printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1); 
                                }
                                break;
                                
                        
                        case 80:  // 下键  下一页 
                                if (count >= 0 && count < PAGE_MAX-1){
                                        system("cls");
                                        count++;
                                        for (i = 0; i < PAGE_MAX; i++){
                                                printf ("%s\n", (*(p+count)+i));
                                        }
                                        printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1); 
                                }
                                break;
                                
                                
                        case 75:  // 左键  第一页
                                        system("cls");
                                        count = 0;
                                        for (i = 0; i < PAGE_MAX; i++){
                                                printf ("%s\n", (*(p)+i));
                                        }
                                        printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1); 
                                break;
                                
                        case 77:  // 右键  最后一页 
                                        system("cls");
                                        count = PAGE_MAX-1;
                                        for (i = 0; i < PAGE_MAX; i++){
                                                printf ("%s\n", (*(p+count)+i));
                                        }
                                        printf ("\n\n\t\t共%d页,你当前在%d页",PAGE_MAX,count+1); 
                                break;
                        }
                        
        }while(1);

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

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

好犀利 为什么我c语言就是学不好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

多动手,多敲代码,永远不要把知识停留在理论阶段
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-29 18:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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