Blucoris 2021-12-16 10:19 采纳率: 75%
浏览 15
已结题

为什么这个程序打开后停不下来QAQ

问题遇到的现象和发生背景
 /*
编写程序,从键盘输入一串字符,要求将该串字符的倒序串先写入到文件f1.txt中,然后再将原字符串的内容接到该文件的末尾。例如,假设从键盘输入的字符串为
“How do you do?”,则文件f1.txt的内容为:‎
?od uoy od woHHow do you do?*/
#include<iostream>
#include<string.h>
using namespace std;
/* Reverse Order Function*/
void func(char *w,int len)
{
    char *p,*q;
    len=strlen(w);
    p=w;
    q=w+len-1;
    while(p<q)
    {
        char t=*p;
        *p=*q;
        *q=t;
    p++,q--;
    }
}
int main()
{
FILE *fp;
char ch;
char s[100];
if((fp=fopen("f1.txt","w"))==NULL)
{
cout<<"can't open file\n";
exit(1);
}
gets(s);
/* Reverse Order*/
if((fp=fopen("f1.txt","r"))==NULL)
{
cout<<"can't open file\n";
exit(1);
}
func(s,strlen(s));
    puts(s);
    fputs(s,fp);
    func(s,strlen(s));
    fputs(s,fp);
    fclose(fp);
    while(!feof(fp))
    {
    ch=fgetc(fp);
    putchar(ch);
    }
    fclose(fp);
}


一直在运行和输出
试过用fclose关过,但好像还是不行
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 书山客 2021-12-16 10:23
    关注
    
    #include<iostream>
    #include<string.h>
    using namespace std;
    /* Reverse Order Function*/
    void func(char* w, int len)
    {
        char* p, * q;
        len = strlen(w);
        p = w;
        q = w + len - 1;
        while (p < q)
        {
            char t = *p;
            *p = *q;
            *q = t;
            p++, q--;
        }
    }
    int main()
    {
        FILE* fp;
        char ch;
        char s[100];
        if ((fp = fopen("f1.txt", "w")) == NULL)
        {
            cout << "can't open file\n";
            exit(1);
        }
        gets_s(s);
        /* Reverse Order*/
        if ((fp = fopen("f1.txt", "r")) == NULL)
        {
            cout << "can't open file\n";
            exit(1);
        }
        func(s, strlen(s));
        puts(s);
        fputs(s, fp);
        func(s, strlen(s));
        fputs(s, fp);
        //fclose(fp);
        while (!feof(fp))
        {
            ch = fgetc(fp);
            putchar(ch);
        }
        fclose(fp);
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 创建了问题 12月16日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)