首页 > 其他分享 >设计一位字段结构存储下面信息。 字体ID:0~255之间的一个数 字体大小:0~127之间的一个数 对齐:0~2之间的一个数表示左对齐,居中,右对齐 加粗:开(1)或闭(0) 斜体:开(1)或闭(0)

设计一位字段结构存储下面信息。 字体ID:0~255之间的一个数 字体大小:0~127之间的一个数 对齐:0~2之间的一个数表示左对齐,居中,右对齐 加粗:开(1)或闭(0) 斜体:开(1)或闭(0)

时间:2024-08-06 23:29:11浏览次数:16  
标签:case char 字体大小 或闭 break printf 对齐 font

/设计一位字段结构存储下面信息。
字体ID:0~255之间的一个数
字体大小:0~127之间的一个数
对齐:0~2之间的一个数表示左对齐,居中,右对齐
加粗:开(1)或闭(0)
斜体:开(1)或闭(0)
在程序中使用该结构来打印字体参数,并使用循环菜单来让用户改变参数。例如,该程序的一个运行示例如下:
ID SIZE ALIGNMENT B I U
1 12 left off off off
f)change font s)change size a)change alignment
b)toggle bold i)toggle italic u)toggle underline
q)quit
/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct
{
    unsigned char id;        // 字体ID: 0~255
    unsigned char size;      // 字体大小: 0~127
    unsigned char alignment; // 对齐: 0~2(左对齐、居中、右对齐)
    unsigned char bold;      // 加粗: 1 或 0
    unsigned char italic;    // 斜体: 1 或 0
    unsigned char underline; // 下划线: 1 或 0
} FontInfo;

void printFontInfo(const FontInfo *font)
{
    const char *alignments[] = {"left", "center", "right"};
    printf("ID SIZE ALIGNMENT B   I   U\n");
    printf("%d  %d   %s     %s  %s  %s\n",
           font->id, font->size, alignments[font->alignment],
           font->bold ? "on" : "off",
           font->italic ? "on" : "off",
           font->underline ? "on" : "off");
}
void menu(FontInfo *font)
{
    printFontInfo(font);
    printf("f)change font   s)change size   a)change alignment\n");
    printf("b)toggle bold   i)toggle italic u)toggle underline\n");
    printf("q)quit\n");
    printf("Choose an option: ");

    char choice = getchar();
    while (getchar() != '\n');
    switch (choice)
    {
        case 'f':
            printf("Enter a new font ID (0-255): ");
            scanf("%hhu", &font->id);
            while (getchar() != '\n');
            break;
        case 's':
            printf("Enter a new size (0-127): ");
            scanf("%hhu", &font->size);
            while (getchar() != '\n');
            break;
        case 'a':
            printf("Enter alignment (l=left, c=center, r=right): ");  
            char align;  
            scanf(" %c", &align);
            switch (align) 
            {  
                case 'l':  
                    font->alignment = 0;
                    break;  
                case 'c':  
                    font->alignment = 1; 
                    break;  
                case 'r':  
                    font->alignment = 2; 
                    break;  
                default:  
                    printf("Invalid alignment choice. It should be 'l', 'c' or 'r'.\n");  
                    break;  
            }  
            while (getchar() != '\n');
            break;
        case 'b':
            font->bold = !font->bold;
            break;
        case 'i':
            font->italic = !font->italic;
            break;
        case 'u':
            font->underline = !font->underline;
            break;
        case 'q':
            exit(0);
            break;
        default:
            printf("Invalid option. Please try again.\n");
            break;
    }
}
int main()
{
    FontInfo font = {1, 12, 0, 0, 0, 0};
    
    while (1)
    {
        menu(&font);
    }
    return 0;
}

标签:case,char,字体大小,或闭,break,printf,对齐,font
From: https://www.cnblogs.com/yesiming/p/18346162

相关文章

  • CSS中span元素垂直居中【解决span元素内基线对齐问题】
    CSS中span元素垂直居中【解决span元素内基线对齐问题】在样式的书写中,我们常常使用以下方式实现垂直居中,若span元素内例外,解决办法看文章最后<divclass="parent"><spanclass="child">text</span></div>1.flex布局方式垂直居中.parent{display:flex;align-ite......
  • 对齐两个或多个独立时间序列的时间范围
    我有几个属于同一时间范围但采样率不同的时间序列。所有系列的开始和结束时间都相同。series_a_times=['2023-01-01','2023-01-03','2023-01-04','2023-01-08']series_b_times=['2023-01-01','2023-01-04','2023-01-04','20......
  • 【C语言】结构体内存布局解析——字节对齐
    ......
  • Self-Instruct:将语言模型与自我生成的指令对齐
    论文:SELF-INSTRUCT:AligningLanguageModelswithSelf-GeneratedInstructionsArxiv:https://arxiv.org/abs/2212.10560论文背景        大型“指令调整”语言模型(即微调以响应指令)已经证明了将零样本泛化到新任务的显着能力。然而,它们在很大程度上依赖于人类编......
  • 通过旋转和裁剪来对齐 X 射线图像
    我有一个X射线图片数据库,我想对其进行图像分类-我想要:识别(不完美)矩形块的旋转旋转图像,使其处于垂直方向(肖像)形式)通过裁剪剩余的黑色空间来删除​​,以便仅保留骨头的实际照片我不完全确定如何最好地解决这个问题,这似乎是有人已经解决的问题。我尝......
  • 如何修复鱼图中形状的对齐问题?
    我正在开发一个项目,尝试使用海龟图形绘制一条鱼。我已经成功地产生了气泡,但鱼的效果却没有达到预期。现在,我有一个三角形以及眼睛和瞳孔的奇怪位置。这些形状并没有组合在一起形成鱼。我认为问题可能在于我如何定位和对齐不同的形状。你能帮我分解一下步骤,以确保鱼的每个部分都正......
  • 【HTML+CSS】CSS中的对齐艺术
    目录1.水平居中文本水平居中行内元素或行内块元素水平居中块级元素水平居中2.垂直居中单行文本垂直居中弹性盒布局(Flexbox)绝对定位与负边距3.同时水平垂直居中弹性盒布局(Flexbox)绝对定位与transform4.左对齐2.右对齐        在网页设计中,元素的居......
  • 如何将导航元素与屏幕右侧对齐
    我只想使用CSS将我的UI元素向右对齐。这是我的CSS代码。nav{display:flex;padding:20px;font-family:Arial;background-color:#4E00A7;text-align:right;}navli{font-family:"Roboto",sans-serif;font-weight:......
  • 偏好对齐
    DPO核心是省去显式建模rewordmodel的过程,显式建立奖励与策略之间的函数关系,使用偏好数据直接优化策略(llm)PPO中训练rewordmodel时的损失函数:\(y_w\)代表好数据(win),\(y_l\)代表差数据(lose)DPO建立一个奖励和策略的显式函数关系:\(\pi_r()\)表示需要对齐的llm,\(\pi_ref()\)表......
  • 如何在 Folium colorbar 中自定义标题文本?我想增加颜色图标题文本的字体大小
    我正在尝试在Folium中使用颜色条作为输出变量圆形图colormap=cm.LinearColormap(colors=['green','red'],index=[min(df['output']),max(df['output'])],vmin=min(df['output']),vmax=max(df['output']),caption='out......