标题:renkejun版主呢 进来瞧瞧
取消只看楼主
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
结帖率:99.76%
已结贴  问题点数:100 回复次数:0 
renkejun版主呢 进来瞧瞧
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct song_info
{
    int songnum;
    char songname[15];

 }SINFO,*pso;

void add(SINFO* pso,FILE* fp,int num)
{
    for(int i=0;i<num;i++)
    {
        printf("这是要添加的第%d首歌的信息: \n",i+1);
        printf("歌曲编号是:");
        scanf("%d",&pso[i].songnum);
        fflush(stdin);
        printf("歌曲名字是:");
        gets(pso[i].songname);
        fflush(stdin);
        fprintf(fp,"%6d%16s\n",pso[i].songnum,pso[i].songname);
        //fwrite(&pso[i],sizeof(SINFO),1,fp);  //用上句sprintf能够成功写入
                                               //而使用fwrite则无法成功写入
                                               //表现1、int类型未能转化成字符
                                               //    2、结尾没有换行回车符
    }
    fclose(fp);
    printf("歌曲添加成功!\n");
}


int main(void)
{
    FILE* fp;
    int num=0;
    fp=fopen("song.txt","a+");
    printf("请输入你要添加歌曲的数量:");
    scanf("%d",&num);
    fflush(stdin);
    SINFO* pso;
    pso=(SINFO*)malloc(sizeof(SINFO)*num);
    memset(pso,0,sizeof(SINFO)*num);
    add(pso,fp,num);
    return 0;
}
这是下面有一个网友提出来的问题  我把问题简化了
现在的问题是  fwrite应该怎么写才能成功写入呢  看网上示例代码 好像就是如此写 貌似没有问题  可实际问题很大啊
搜索更多相关主题的帖子: int num printf 歌曲 成功 
2017-05-14 10:32



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




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

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