smallcc
驱动牛犊
驱动牛犊
  • 注册日期2004-06-21
  • 最后登录2004-10-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2139回复:7

请问一个关于写文件的问题

楼主#
更多 发布于:2004-08-18 16:42
我有段小程序如下:

main()
{FILE *fp;
 int data_audio[0x2000];
  .......//将采集的数据放入data_audio.
  ....
  .....
 if ((fp=(fopen( "mydata3","wb+")))==NULL)
    exit(0);
  else
    fwrite (data_audio,  sizeof (int) ,0x2000,fp);
}
现在问题是我采集的数据是十六位的,将data_audio 数组中的数据存入二进制文件fp后,用ultraedit 打开生成的文件mydata3,里面的数据只有data_audio中的每个数据的低8位,高8位就没有写到文件中去,请问这是怎么回事?怎么才能把我采集到的数据完整的写入到这个文件中去啊?

我用的开发环境是ti的ccs。
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-18 17:33
试一试
fopen( "mydata3","wt+"))
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
smallcc
驱动牛犊
驱动牛犊
  • 注册日期2004-06-21
  • 最后登录2004-10-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-18 18:36
试一试
fopen( "mydata3","wt+"))


wt+是什么意思,没有听过,能否解释一下啊?

我读取在缓冲中采集的数据,播放的效果很好,为什么把缓冲中的数据生成文件就播放就成了噪音了啊?
smallcc
驱动牛犊
驱动牛犊
  • 注册日期2004-06-21
  • 最后登录2004-10-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-18 18:53
试一试
fopen( "mydata3","wt+"))



不行,在ccs下运行该语句后出现Invalid CIO command (234).,这样的错误提示,不知道是为什么?
Sundsea
驱动老牛
驱动老牛
  • 注册日期2003-05-06
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望35点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-19 21:07
试一试
fopen( "mydata3","wt+"))
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-20 08:38
[quote]试一试
fopen( "mydata3","wt+"))

察看MSND


wt+是什么意思,没有听过,能否解释一下啊?

我读取在缓冲中采集的数据,播放的效果很好,为什么把缓冲中的数据生成文件就播放就成了噪音了啊? [/quote]

你不说高8位没了吗?数据丢一半,哪能好吗,
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
xx_focus
驱动中牛
驱动中牛
  • 注册日期2003-08-06
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望10点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-08-27 22:10
a _O_WRONLY | _O_APPEND (usually _O_WRONLY | _O_CREAT | _O_APPEND)
a+ _O_RDWR | _O_APPEND (usually _O_RDWR | _O_APPEND | _O_CREAT )
r _O_RDONLY
r+ _O_RDWR
w _O_WRONLY (usually _O_WRONLY | _O_CREAT | _O_TRUNC)
w+ _O_RDWR (usually _O_RDWR | _O_CREAT | _O_TRUNC)
b _O_BINARY
t _O_TEXT

不知道你的文件大小是否跟你的缓冲一样大(我想一般不会有差别的)

在读文件的时候不知道是否正确。 :)  
zhenlongyang
驱动小牛
驱动小牛
  • 注册日期2004-10-28
  • 最后登录2010-07-26
  • 粉丝1
  • 关注0
  • 积分729分
  • 威望100点
  • 贡献值0点
  • 好评度66点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-10-29 00:09
这个问题可能并不是打开文件和写文件的问题,依我看多办是数据源本身有问题!即data_audio[]中的数据不正确,这可能是你采集的数据有问题或者是将采集的数据放入dada_audio[]的过程中出现了问题,总之你应该首先确保数据本身没问题,要却定是否是fopen()和fwrite()的问题,你可以将dada_audio[]预先置入几个16位的值,然后直接将其写入文件看看结果是否正确,如果正确那就是数据源的问题了,我不太相信fopen()和fwrite()会出问题。
游客

返回顶部