我是新人,希望能直接给出代码,如果正确,我一定会采纳的。
2条回答 默认 最新
- threenewbee 2020-01-09 20:35关注
给你做了几个命令,我不要你额外的悬赏分,更不要你的钱,但是你这个实在比较复杂,采纳本回答后,其余的一个要求开一个0悬赏的问题。我分别回答。
// Q1051301.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include <string.h> char content[1000][5000]; char filename[512]; int linecnt; void display() { int n; scanf("%d", &n); if (n > linecnt) printf("第%d行不存在!", n); else printf("%s", content[n - 1]); } void del() { int n; scanf("%d", &n); if (n > linecnt) printf("第%d行不存在!", n); else { for (int i = n - 1; i < linecnt - 1; i++) { strcpy(content[i], content[i + 1]); } linecnt--; } } void cucd(int type) { int n, m; scanf("%d %d", &n, &m); if (type == 2) m = m + 1; for (int i = linecnt; i > m - 1; i--) { strcpy(content[i], content[i - 1]); } if (n >= m) n = n + 1; strcpy(content[m - 1], content[n - 1]); linecnt++; } void save() { FILE *fp; fp = fopen(filename, "w+"); for (int i = 0; i < linecnt; i++) fputs(content[i], fp); fclose(fp); } int main() { int choice; start: printf("文本编辑器\n1 新建文件\n2 编辑文件\n请选择:"); scanf("%d", &choice); if (choice == 1) printf("请输入新文件的文件名:"); else if (choice == 2) printf("请输入打开文件的文件名:"); else goto start; scanf("%s", &filename[0]); FILE *file; if (choice == 1) { if (fopen(filename, "r") == NULL) { file = fopen(filename, "w"); fclose(file); } else { fclose(file); printf("文件已经存在\n"); goto start; } } else { if ((file = (fopen(filename, "r"))) != NULL) { linecnt = 0; while (1) { if (fgets(&content[linecnt++][0], 5000, file) == NULL) break; } fclose(file); } else { printf("文件不存在\n"); goto start; } } char cmd[10]; while (1) { printf("L n 显示第n行\n"); printf("D n 删除第n行\n"); printf("CU n m 将第n行复制到第m行上面\n"); printf("CD n m 将第n行复制到第m行上面\n"); printf("SAVE 保存退出\n"); printf("EXIT 放弃修改直接退出\n"); scanf("%s", cmd); if (strcmp("L", cmd) == 0) { display(); } else if (strcmp("D", cmd) == 0) { del(); } else if (strcmp("CU", cmd) == 0) { cucd(1); } else if (strcmp("CD", cmd) == 0) { cucd(2); } else if (strcmp("SAVE", cmd) == 0) { save(); break; } else if(strcmp("EXIT", cmd) == 0) { break; } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 ads仿真结果在圆图上是怎么读数的
- ¥20 Cotex M3的调试和程序执行方式是什么样的?
- ¥20 java项目连接sqlserver时报ssl相关错误
- ¥15 一道python难题3
- ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
- ¥15 牛顿斯科特系数表表示
- ¥15 arduino 步进电机
- ¥20 程序进入HardFault_Handler
- ¥15 oracle集群安装出bug
- ¥15 关于#python#的问题:自动化测试