标题:菜鸟请教问题。。。文件相关
取消只看楼主
刘煜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:58
注 册:2012-3-25
结帖率:0
已结贴  问题点数:10 回复次数:9 
菜鸟请教问题。。。文件相关
用vc++6.0做的
#include <stdio.h>
#include <conio.h>
FILE *fp;
void main()
{
    char name[27],c;
    puts("请输入歌词名称:");
    scanf("%s",&str);
    if((fp=fopen(name,"r"))==NULL)
        puts("打开文件失败,请检查原因.。。任意键退出"),getch();
    else
    {
        do
        {
            c=fgetc(fp);
            printf("%c",c);
        }while(!feof(fp));
    }
    getch();
}
请教大神,为什么打开文本文档正常,打开lrc文件就出问题呢???C编辑文本文档做的lrc文件,酷我音乐盒,千千动听都能打开,而且这个软件能打开,但是从网上下载的却不能打开,求高手回答
搜索更多相关主题的帖子: name void include 
2012-03-31 22:51
刘煜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:58
注 册:2012-3-25
得分:0 
回复 2楼 樾宝
这个不是,应该使用name 因为如果使用"name"的话就是那个名称就是name了而不是变量name的值了。如果有疑问请自己尝试一下
2012-04-01 21:54
刘煜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:58
注 册:2012-3-25
得分:0 
回复 3楼 embed_xuel
可以的,这个完全没问题
2012-04-01 21:55
刘煜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:58
注 册:2012-3-25
得分:0 
回复 7楼 fenghelong
抱歉。粗心给你们带来不便了。那里的str实际上是我编辑的时候用的,那个时候不是用的name,之后贴上来的时候改了前面的str 没有改中间的所以出现了这个问题。。。。。。。
2012-04-01 22:47
刘煜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:58
注 册:2012-3-25
得分:0 
具体的是想做一个程序,打开lrc文件(一般歌曲的歌词文件,用电脑自带的记事本可以打开,所以感觉应该可以用打开文件的fopen的文本方式打开)。在屏幕上显示其内容。结果打开原文件(下载的)时候乱码,在打开自己用记事本写的的lrc文件(该文件音乐播放器可以直接使用)的时候正常显示。所以想请大神解释。。。
2012-04-01 22:51
刘煜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:58
注 册:2012-3-25
得分:0 
回复 9楼 TonyDeng
但是我用vc编辑的时候如果没用的话编译的时候无错,但运行的时候会出现windows的警告,说一个内存指定的另一个内存不能为written。
以贴上去的方法运行时正确的(vc++6.0)
2012-04-01 22:54
刘煜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:58
注 册:2012-3-25
得分:0 
回复 12楼 embed_xuel
是汉字。
考虑到一个汉字用的是两个字节,我一开始用的是%s,那个c用的是c[2](c[3],c[4],c[5])都试过了,都能运行,打开自己写的文件,但是用这些的时候无法显示换行。我想了好久,不知道怎么回事。结果用%c试了一下,发现能行,准备就这个问题发一个新帖问的,你提出来了,也就在这里问一下吧。
2012-04-01 23:02
刘煜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:58
注 册:2012-3-25
得分:0 
回复 13楼 TonyDeng
应该是我说的有问题造成了你的理解问题吧。就有“&”的时候,运行完全无误(打开自己写的文件)。但是没有"&"的时候,能够组建出那个exe文件,也可以成为dos平台,但是运行那个dos平台(黑背景的那个家伙,我刚学了一个C程序设计,所以不知道到底什么玩意儿,前面两步正确,运行到这里就跳出了一个警告框,平时windows7运行某些程序的时候跳出来的那个框类似的那个警告框说不能为written),就在这里出问题,调试的时候也是调到这个语句的时候出现问题,我用的有&的时候正常
2012-04-01 23:09
刘煜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:58
注 册:2012-3-25
得分:0 
回复 15楼 embed_xuel
好吧。。
2012-04-01 23:09
刘煜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:58
注 册:2012-3-25
得分:0 
回复 18楼 TonyDeng
就是没有&的时候就会导致运行时候崩溃啊。刚开始学的时候写过类似的也是,我一开始定义一个字符数组str[10];
然后scanf("%s",str);这样就有问题了。但是老师看过之后说改成scanf("%s",&str);就好了,试了之后也确实是这样。我也不明白为什么str本身就相当于一个指针为什么还要用&取地址。。。,今天得睡了。亲,你们也早点休息吧。。。
2012-04-01 23:20



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




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

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