啊哈磊_编程从这里起步

标题: fprintf,fputs等写不进文件肿么破 [打印本页]

作者: cad20020601    时间: 2015-1-1 23:05
标题: fprintf,fputs等写不进文件肿么破
本帖最后由 cad20020601 于 2015-1-1 23:08 编辑

表示在写一个游戏,代码就不发了(咳咳),结果写存档的时候就发现明明代码对的,但是文件就是没有数据写入,所以求助。。
(好吧我终于舍得5个啊哈币了)
截取部分代码:
[mw_shl_code=c,true]gets(j1.name);
    fputs(j1.name,fp);
    fprintf(fp,"\n%d\n%d\n%d\n%d\n%d\n",j1.shengming,j1.mofa,j1.dengji,j1.zhangjie,j1.jingyan);   
    fprintf(fp,"%d\n%d\n",j1.gongji,j1.fangyu); [/mw_shl_code]

文件是创建了,but只是空文件,说好的数据去哪了QwQ

作者: rosynirvana    时间: 2015-1-1 23:05
fp=fopen("cd.txt","at")==NULL
==的优先级比=高
作者: cad20020601    时间: 2015-1-1 23:10
@4399APPLE
@超神级
@rosynirvana
@李掌柜 (艾特这个似乎注定无效)
作者: rosynirvana    时间: 2015-1-1 23:16
程序正常结束了吗?还是正在运行的时候去查看的?
作者: cad20020601    时间: 2015-1-1 23:20
rosynirvana 发表于 2015-1-1 23:16
程序正常结束了吗?还是正在运行的时候去查看的?

正常结束= =
作者: cad20020601    时间: 2015-1-1 23:21
rosynirvana 发表于 2015-1-1 23:16
程序正常结束了吗?还是正在运行的时候去查看的?

郁闷死我了都、
貌似成功过一次,但之后就再也没成功过
作者: rosynirvana    时间: 2015-1-1 23:28
那你把上下文都贴出来看看
作者: cad20020601    时间: 2015-1-1 23:33
rosynirvana 发表于 2015-1-1 23:28
那你把上下文都贴出来看看

好吧,写得特别乱[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
struct juese
{
    char name[20];
    int shengming;
    int mofa;
    int dengji;
    int zhangjie;
    int jingyan;
    int gongji;
    int fangyu;
};
struct juese j1;
int caidan()
    {
    printf("\t\t---------------------------------\t\t\n");
        printf("\t\t|                               |\t\t\n");
    printf("\t\t|        1.新的世界             |\t\t\n");
    printf("\t\t|        2.读取存档             |\t\t\n");
    printf("\t\t|        3.设置                 |\t\t\n");
    printf("\t\t|        4.制作人员             |\t\t\n");
    printf("\t\t|        5.退出程序             |\t\t\n");
    printf("\t\t|                               |\t\t\n");
    printf("\t\t---------------------------------\t\t\n");
    printf("\n\n");
    }
int choose()
    {
    char choose;   
    caidan();
    while(1)
    {
    printf("请选择:");
    scanf("%c",&choose);
    getchar();
    if(choose=='1'){        
        xing(); break;}
    else if(choose=='2'){
        jiu(); break;}   
    else if(choose=='3'){
        shezhi(); break;}
    else if(choose=='4'){
        zhizuo(); break;}        
    else if(choose=='5')
        return;
    else printf("请正确输入!\n");
   
    }   
    }
int xing()
    {   
    printf("新建存档会覆盖掉原来的存档呢!\n请先将旧存档(cd.txt)复制到其他文件夹!\n");   
    getchar();
    printf("开始创建新存档……\n");   
    FILE *fp;
    fp=fopen("cd.txt","wt+");
    fclose(fp);
    printf("啊哈,存档新建完毕!\n");
    if(fp=fopen("cd.txt","at")==NULL)
    {
    printf("坏蛋坏蛋!存档又找不到了啦!\n");
    xing();
    }
    else
    {
    j1.shengming=1;
    j1.mofa=1;
    j1.dengji=1;
    j1.zhangjie=0;
    j1.jingyan=0;
    j1.gongji=1;
    j1.fangyu=1;   
    printf("请输入角色名:");
    gets(j1.name);
    fputs(j1.name,fp);
    fprintf(fp,"\n%d\n%d\n%d\n%d\n%d\n",j1.shengming,j1.mofa,j1.dengji,j1.zhangjie,j1.jingyan);   
    fprintf(fp,"%d\n%d\n",j1.gongji,j1.fangyu);   
    fclose(fp);
    printf("存档新建完成了呢~\n是否开始游戏?(y/n)\n");
    char panduan;     
    scanf("%c",&panduan);
    if(panduan=='y' || panduan=='Y')
        youxi();
    else
        return;
    }
    system("pause");
    }
int jiu()
    {
    FILE *fp;
    if(fp=fopen("cd.txt","rt")==NULL)
        {
        printf("找不到自家的存档,请先新建存档呢~\n");
        xing();
        }
    fgets(j1.name,21,fp);   
    }
int shezhi()
    {
    }
int zhizuo()
    {
    system("cls");     
    printf("程序编写:月影\n");   
    printf("情节设计:月影\n");   
    printf("各种奇怪的东西:月影\n");
    printf("谢谢啊哈论坛的小伙伴们!\n");
    printf("www.ahalei.com\n");
    system("pause");
    }            
int youxi()
    {
    }
int main()
{
    choose();
        return 0;
}
[/mw_shl_code]
作者: cad20020601    时间: 2015-1-2 09:15
rosynirvana 发表于 2015-1-1 23:45
fp=fopen("cd.txt","at")==NULL
==的优先级比=高

啊,是么
看教程上是这么写的哈
作者: cad20020601    时间: 2015-1-2 09:15
rosynirvana 发表于 2015-1-1 23:45
fp=fopen("cd.txt","at")==NULL
==的优先级比=高

啊,是么
看教程上是这么写的哈
作者: 超神级    时间: 2015-1-2 13:54
cad20020601 发表于 2015-1-2 09:15
啊,是么
看教程上是这么写的哈

=的优先级很低的。。。
作者: 超神级    时间: 2015-1-2 13:55
cad20020601 发表于 2015-1-2 09:15
啊,是么
看教程上是这么写的哈

功能齐全。。
作者: 超神级    时间: 2015-1-2 13:56
cad20020601 发表于 2015-1-2 09:15
啊,是么
看教程上是这么写的哈

文件指针怎么这样写。。。。
作者: 超神级    时间: 2015-1-2 14:20
还有什么疑问M我我最近很闲
作者: javaC    时间: 2015-1-2 15:13
建议你用二进制读写啊,直接写入一个结构体,方便
作者: 超神级    时间: 2015-1-3 08:31
话说你程序搞好了没。貌似不止一两个问题.
作者: cad20020601    时间: 2015-1-3 08:49
超神级 发表于 2015-1-3 08:31
话说你程序搞好了没。貌似不止一两个问题.

没有啊,没时间弄呢,在写剧情
另外还在纠结存档加密保密的问题
作者: 超神级    时间: 2015-1-3 13:09
cad20020601 发表于 2015-1-3 08:49
没有啊,没时间弄呢,在写剧情
另外还在纠结存档加密保密的问题

              
作者: 趣味的吃    时间: 2015-1-27 09:16
要写文件的话要用==号
作者: 趣味的吃    时间: 2015-1-27 09:21
编译了一下,错误信息:[mw_shl_code=c,true]--------------------Configuration: 新建文件 - Win32 Debug--------------------
Compiling...
新建文件.c
H:\我的C设计\新建文件.c(38) : warning C4013: 'xing' undefined; assuming extern returning int
H:\我的C设计\新建文件.c(40) : warning C4013: 'jiu' undefined; assuming extern returning int
H:\我的C设计\新建文件.c(42) : warning C4013: 'shezhi' undefined; assuming extern returning int
H:\我的C设计\新建文件.c(44) : warning C4013: 'zhizuo' undefined; assuming extern returning int
H:\我的C设计\新建文件.c(46) : warning C4033: 'choose' must return a value
H:\我的C设计\新建文件.c(56) : error C2275: 'FILE' : illegal use of this type as an expression
        c:\program files\microsoft visual studio\vc98\include\stdio.h(156) : see declaration of 'FILE'
H:\我的C设计\新建文件.c(56) : error C2065: 'fp' : undeclared identifier
H:\我的C设计\新建文件.c(57) : warning C4047: '=' : 'int ' differs in levels of indirection from 'struct _iobuf *'
H:\我的C设计\新建文件.c(58) : warning C4047: 'function' : 'struct _iobuf *' differs in levels of indirection from 'int '
H:\我的C设计\新建文件.c(58) : warning C4024: 'fclose' : different types for formal and actual parameter 1
H:\我的C设计\新建文件.c(76) : warning C4047: 'function' : 'struct _iobuf *' differs in levels of indirection from 'int '
H:\我的C设计\新建文件.c(76) : warning C4024: 'fputs' : different types for formal and actual parameter 2
H:\我的C设计\新建文件.c(77) : warning C4047: 'function' : 'struct _iobuf *' differs in levels of indirection from 'int '
H:\我的C设计\新建文件.c(77) : warning C4024: 'fprintf' : different types for formal and actual parameter 1
H:\我的C设计\新建文件.c(78) : warning C4047: 'function' : 'struct _iobuf *' differs in levels of indirection from 'int '
H:\我的C设计\新建文件.c(78) : warning C4024: 'fprintf' : different types for formal and actual parameter 1
H:\我的C设计\新建文件.c(79) : warning C4047: 'function' : 'struct _iobuf *' differs in levels of indirection from 'int '
H:\我的C设计\新建文件.c(79) : warning C4024: 'fclose' : different types for formal and actual parameter 1
H:\我的C设计\新建文件.c(81) : error C2143: syntax error : missing ';' before 'type'
H:\我的C设计\新建文件.c(82) : error C2065: 'panduan' : undeclared identifier
H:\我的C设计\新建文件.c(84) : warning C4013: 'youxi' undefined; assuming extern returning int
H:\我的C设计\新建文件.c(86) : warning C4033: 'xing' must return a value
H:\我的C设计\新建文件.c(93) : warning C4047: '=' : 'struct _iobuf *' differs in levels of indirection from 'int '
执行 cl.exe 时出错.

新建文件.exe - 1 error(s), 0 warning(s)[/mw_shl_code]
作者: 趣味的吃    时间: 2015-1-27 09:21
我用的VC




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2