c语言文件题,最好有注释

在main函数中创建一个文件,将键盘输入的字符串写入文件中。打开该文件,读出字符串。将字符串从指定下标p处开始的前q个字符(包括p处字符,q≤p+1)复制到字符串的结尾,形成的新串保存到另一个文件中。比如,abcdefg,从下标3处开始的前2个字符复制到字符串的结尾,得新串:abcdecd。要求:p和q均由键盘输入。#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ FILE *fp; char s[110], t[110]; int p, q; if ((fp = fopen("D:\a.txt", "w")) == NULL) { printf("Create file error\n"); exit(0); } fgets(s,110,stdin); fprintf(fp,"%s",s); fclose(fp); if ((fp = fopen("D:\a.txt", "r")) == NULL) { printf("Open file error\n"); exit(0); } fgets(s,110,fp); fclose(fp); printf("%s",s); fscanf(fp, "%s%d%d", s, &p, &q); strncpy(t,s+p,q); if ((fp = fopen("D:\b.txt", "w")) == NULL) { printf("Create file error\n"); exit(0); } fprintf(fp, "%s", t); fclose(fp); return 0;

img


img


 
//在main函数中创建一个文件,将键盘输入的字符串写入文件中。打开该文件,读出字符串。
//将字符串从指定下标p处开始的前q个字符(包括p处字符,q≤p+1)复制到字符串的结尾,形成的新串保存到另一个文件中。
//比如,abcdefg,从下标3处开始的前2个字符复制到字符串的结尾,得新串:abcdecd。要求:p和q均由键盘输入。
#pragma warning(disable:4996) //开头加这句或项目、属性、配置属性、C/C++、预处理器、预处理器定义中添加“_CRT_SECURE_NO_WARNINGS”
#include <stdio.h>
#include <string.h>
int main() {
    FILE *f;
    char s[80];
    char t[80*2];
    int p,q;
 
    f=fopen("a.txt","w");
    fgets(s,80,stdin);
    if ('\n'==s[strlen(s)-1]) s[strlen(s)-1]=0;
    fprintf(f,"%s",s);
    fclose(f);
    f=fopen("a.txt","r");
    fgets(s,80,f);
    fclose(f);
    printf("%s",s);
    while (1) {
        printf("\ninput p(0<=p<=%d) q(1<=q<=p+1):",strlen(s)-1);
        fflush(stdout);
        rewind(stdin);
        if (2==scanf("%d%d",&p,&q)) {
            if (0<=p && p<=strlen(s)-1 && 1<=q && q<=p+1) break;
        }
    }
    strncpy(t,s,strlen(s)-q);
    t[strlen(s)-q]=0;
    strncat(t,s+p-q+1,q);
    f=fopen("b.txt","w");
    fprintf(f,"%s",t);
    fclose(f);
    return 0;
}
//d:\test>test.exe
//abcdefg
//abcdefg
//input p(0<=p<=6) q(1<=q<=p+1):3 2
//
//d:\test>type a.txt
//abcdefg
//d:\test>type b.txt
//abcdecd
//d:\test>
 

fscanf(fp, "%s%d%d", s, &p, &q);
===你这fgets(s,110,stdin);时要求输入内容是什么格式呢?

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632