#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include <string.h>
// 定义最大行长度和缓冲区大小
#define MAX_LINE_LENGTH 1024
#define BUFFER_SIZE 10240
// 读取文件内容并显示
void readFile(char *filename) {
FILE *file = fopen(filename, "r");
if (file == NULL) {
printf("无法打开文件 %s\n", filename);
return;
}
char line[MAX_LINE_LENGTH];
while (fgets(line, MAX_LINE_LENGTH, file)!= NULL) {
printf("%s", line);
}
fclose(file);
}
// 输入内容并保存到文件
void writeFile(char *filename) {
FILE *file = fopen(filename, "w");
if (file == NULL) {
printf("无法创建或打开文件 %s 进行写入\n", filename);
return;
}
printf("输入要保存的内容,输入'q'结束输入:\n");
char line[MAX_LINE_LENGTH];
while (1) {
printf("> ");
fgets(line, MAX_LINE_LENGTH, stdin);
line[strcspn(line, "\n")] = '\0'; // 去除换行符
if (strcmp(line, "q") == 0) {
break;
}
fprintf(file, "%s\n", line);
}
fclose(file);
}
int main()
{
int x;
int n,g=1;
while(g)/*利用g来判断是否继续进行游戏*/
{
n=0;/*比较次数置零*/
for(;;)
{
printf("\n\n\n符号排列组合帮助:\n【0是2个符号2位数排列组合】\n【1是2个符号3位数排列组合】\n【2是3个符号2位数排列组合】\n【3是3个符号3位数排列组合】\n【4是数字画图程序】\n【5是4个符号2位数排列组合】\n【6是5个符号2位数排列组合】\n【7是6个符号2位数排列组合】\n【8是7个符号2位数排列组合】\n【9是文档编辑程序】\n\n\n");
printf("请输入数字选择\n");
scanf("%d",&x);
switch(x) {
case 0:char* a[2][2];
printf("请输入2个符号\n");
for (int i = 0; i < 2; i++)
scanf("%s", a[i]);
for (int j = 0; j < 2; j++)
for (int k = 0; k < 2; k++)
printf("%s%s\n", a[j],a[k]); break;
case 1:char* b[2][2];
printf("请输入2个符号\n");
for (int i = 0; i < 2; i++)
scanf("%s", b[i]);
for (int j = 0; j < 2; j++)
for (int k = 0; k < 2; k++)
for (int l = 0; l < 2; l++)
printf("%s%s%s\n", b[j],b[k],b[l]); break;
case 2:char* c[3][3];
printf("请输入3个符号\n");
for (int i = 0; i < 3; i++)
scanf("%s", c[i]);
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
printf("%s%s\n", c[j],c[k]); break;
case 3:char* d[3][3];
printf("请输入3个符号\n");
for (int i = 0; i < 3; i++)
scanf("%s", d[i]);
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
for (int l = 0; l < 3; l++)
printf("%s%s%s\n", d[j],d[k],d[l]); break;
{
case 4:
char z[10];
printf("请输入数字\n");
scanf("%s",&z);
for (int i=0;i<10;i++)
switch(z[i]) {
case '1':printf("\033[30;31;6m■红"); break;
case '2':printf("\033[30;32;6m■绿"); break;
case '3':printf("\033[30;33;6m■黄"); break;
case '4':printf("\033[30;34;6m■蓝"); break;
case '5':printf("\033[30;35;6m■紫"); break;
case '6':printf("\033[30;36;6m■青"); break;
case '7':printf("\033[30;38;6m■黑"); break; case '0':printf(" "); break;
case '/':printf("\n"); break;
}
{
case 5:char* g[4][4];
printf("请输入4个符号\n");
for (int i = 0; i < 4; i++)
scanf("%s", g[i]);
for (int j = 0; j < 4; j++)
for (int k = 0; k < 4; k++)
printf("%s%s\n", g[j],g[k]); break;
case 6:char* h[5][5];
printf("请输入5个符号\n");
for (int i = 0; i < 5; i++)
scanf("%s", h[i]);
for (int j = 0; j < 5; j++)
for (int k = 0; k < 5; k++)
printf("%s%s\n", h[j],h[k]); break;
case 7:char* m[6][6];
printf("请输入6个符号\n");
for (int i = 0; i < 6; i++)
scanf("%s", m[i]);
for (int j = 0; j < 6; j++)
for (int k = 0; k < 6; k++)
printf("%s%s\n", m[j],m[k]); break;
case 8:char* n[7][7];
printf("请输入7个符号\n");
for (int i = 0; i < 7; i++)
scanf("%s", n[i]);
for (int j = 0; j < 7; j++)
for (int k = 0; k < 7; k++)
printf("%s%s\n", n[j],n[k]); break;
case 9:
{
int choice;
char filename[100];
do {
printf("1. 读取文件\n");
printf("2. 输入并保存到文件\n");
printf("3. 继续编辑\n");
printf("4. 退出\n");
printf("请选择操作: ");
scanf("%d", &choice);
printf("请输入文件名: ");
scanf("%s", filename);
switch (choice) {
case 1:
readFile(filename);
break;
case 2:
writeFile(filename);
break;
case 3:
// 继续编辑的逻辑
printf("继续编辑\n");
break;
case 4:
printf("退出程序\n");
return 0;
default:
printf("无效的选择\n");
break;
}
} while (1);
return 0;
}
}
default :printf("输入错误,请重新输入!"); break;
printf("Wanna continue想继续吗? 1.continue继续 0.exit退出\n");
scanf("%d",&g);/*选择是否继续*/
break;
}
}
}
}
}
联系客服