标题:C语言关于 fprintf 的问题
只看楼主
You0
Rank: 2
等 级:论坛游民
帖 子:29
专家分:63
注 册:2014-8-2
结帖率:87.5%
已结贴  问题点数:20 回复次数:4 
C语言关于 fprintf 的问题
#include<stdio.h>

FILE *fp=NULL;
void creat();
void write();
char name[40];

struct    abc
{
    char yourwrite[1000];
};
int main(void)
{   
    int a;
   
    while(1)
    {
        printf("==>Menu<==\n");
        printf("---------->1.创建一个文件\n");
        printf("---------->2.对此文件写入\n");

        scanf("%d",&a);
        
          switch (a)
     {
        case 1:creat();  break;
        case 2:write();  break;
 default:printf("Error\n");
    }

}

}

void creat()
{

printf("[请符合windows文件名规则,否者将无法创建]\n");
    printf("请输入要创建的文件名:");
    scanf("%s",name);
    fp=fopen(name,"a+");

}

void write()
{   

    if((fp=fopen(name,"a+"))==NULL)
    {printf("你还未创建文件,请选择菜单一\n\n");return;}
    int b;

    printf("fprintf()函数\n");

printf("其函数原型:int fprintf(FILE *fp,char *fmt,...)\n");

printf("请输入你要写入的内容:");  
                    struct abc INPUT;
                    scanf("%s",INPUT.yourwrite);
fprintf(fp,"%s",INPUT.yourwrite);

}

为什么这个程序,执行了fprintf,却不能写入东西???
搜索更多相关主题的帖子: default include C语言 write 
2014-09-11 20:43
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:10 
程序代码:
#include<stdio.h>

FILE *fp=NULL;
void creat();
void write();
char name[40];

struct    abc
{
    char yourwrite[1000];
};
int main(void)
{  
    int a;
  
    while(1)
    {
        printf("==>Menu<==\n");
        printf("---------->1.创建一个文件\n");
        printf("---------->2.对此文件写入\n");

        scanf("%d",&a);
       
        switch (a)
        {
        case 1:creat();  break;
        case 2:write();  break;
        default:printf("Error\n");
        }

    }

}

void creat()
{

    printf("[请符合windows文件名规则,否者将无法创建]\n");
    printf("请输入要创建的文件名:");
    scanf("%s",name);
    fp=fopen(name,"a+");
    fclose(fp);        /* 注意这一行加的内容 */
}

void write()
{   

    if((fp=fopen(name,"a+"))==NULL)
    {printf("你还未创建文件,请选择菜单一\n\n");return;}
    int b;

    printf("fprintf()函数\n");

    printf("其函数原型:int fprintf(FILE *fp,char *fmt,...)\n");

    printf("请输入你要写入的内容:"); 
    struct abc INPUT;
    scanf("%s",INPUT.yourwrite);
    fprintf(fp,"%s",INPUT.yourwrite);
    fclose(fp);        /* 注意这一行加的内容 */
}


简单来说 你每次操作文件后都关闭 就可以实现你想要的功能了

顺便 你这个程序没有退出功能 设计的很不好
2014-09-11 21:05
You0
Rank: 2
等 级:论坛游民
帖 子:29
专家分:63
注 册:2014-8-2
得分:0 
回复 2 楼 zklhp
太感谢了。其实我这个还没写完啦。我看了书,结果我想自己试试代码,结果发现基本不会,格式老错。    就像看的懂菜谱但做不了菜一样。 于是我想把我之前只是看看书的部分,自己把他们窜在一起,写一个这么个程序。 退出是必须有的。     没想到刚试第一个函数就遇到了这么棘手的问题。

我自己看了半天,就是不知道错在哪。原来错在这里。。     对了版主。能再问个问题不,现在有必要开始看c语言一些有关算法的书了吗?我目前大一刚开学,还在军训,同学都不懂这个,感觉自己一个人探索有点迷茫- -
2014-09-11 22:41
You0
Rank: 2
等 级:论坛游民
帖 子:29
专家分:63
注 册:2014-8-2
得分:0 
我的专业是什么信息安全,挺新的一个专业。虽然学校读的211,我们学校计科也是国家重点专业,但是我不打算跟着学校的进度,我要自学!成为大神!
2014-09-11 22:44
Coincedence4
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:52
专家分:151
注 册:2014-9-4
得分:10 
break只能退出swich不能退出你的while(1),另外你这种设计只能无休止的新建文件,无法写入文件。可以修改成下面的:
#include<stdio.h>


void creat();
void write();
char name[40];

struct    abc
 {
     char yourwrite[1000];
 };
int main(void)
 {  
     int a;
   
     while(1)
     {
         printf("==>Menu<==\n");
         printf("---------->1.创建一个文件\n");
         printf("---------->2.对此文件写入\n");

         scanf("%d",&a);
        
         switch (a)
         {
         case 1:creat();  break;
         case 2:write();  break;
         default:printf("Error\n");
         }
     break;

     }

 }

void creat()
 {
     FILE *fp;
     printf("[请符合windows文件名规则,否者将无法创建]\n");
     printf("请输入要创建的文件名:");
     scanf("%s",name);
     fp=fopen(name,"a+");
     fclose(fp);      
 }

void write()
 {   
     FILE *p;
     creat();
     if((p=fopen(name,"a+"))==NULL)
     {printf("你还未创建文件,请选择菜单一\n\n");return;}
     int b;

     printf("fprintf()函数\n");

     printf("其函数原型:int fprintf(FILE *fp,char *fmt,...)\n");

     printf("请输入你要写入的内容:");
     struct abc INPUT;
     scanf("%s",INPUT.yourwrite);
     fprintf(p,"%s",INPUT.yourwrite);
     fclose(p);     
 }
2014-09-11 22:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-435970-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.403432 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved