我是新人,希望能直接给出代码,如果正确,我一定会采纳的。
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 宇视监控服务器无法登录
- ¥15 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
- ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)