我是新人,希望能直接给出代码,如果正确,我一定会采纳的。
2条回答 默认 最新
- threenewbee 2020-01-09 12: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 pycharm倒入虚拟环境的时候,显示这个,但是我的虚拟环境已经创建了
- ¥15 FPGA芯片60进制计数器
- ¥15 前端js怎么实现word的.doc后缀文件在线预览
- ¥20 macmin m 4连接iPad
- ¥15 DBIF_REPO_SQL_ERROR
- ¥15 根据历年月数据,用Stata预测未来六个月汇率
- ¥15 DevEco studio开发工具 真机联调找不到手机设备
- ¥15 请教前后端分离的问题
- ¥100 冷钱包突然失效,急寻解决方案
- ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet