c语言文件读写问题,文件没内容?程序是照着书上搬出来的,运行啥都没问题就是生成的文件里面看不到内容
3个回答
展开全部
代码上几个错误:
a)文件名的存储空间只有10个字符,而你输入的也是10个字符,字符串末尾要增加一个\0字符,所以你已经内存访问越界了,文件名数组习惯定义的大小是MAX_PATH,也就是250字符左右
b) 你使用的是不带文件路径的文件名,这样的文件名的具体位置依赖于”当前路径“,而很多人对当前路径的理解是错误的,它不是可执行文件所在位置,所以也许你看了不同位置的文件。你先试试输入完整路径再说
c)你在不停检查fp !=NULL,注意,除非你主动设置fp=NULL否则一旦它有值无论文件后续是否被关闭,它都不是NULL,所以只有fopen后那一个fp!=NULL有意义,其他都是错误
现在很多书都是垃圾,所以书照搬不是好标注,还是要好好理解语言,不要过分相信书
a)文件名的存储空间只有10个字符,而你输入的也是10个字符,字符串末尾要增加一个\0字符,所以你已经内存访问越界了,文件名数组习惯定义的大小是MAX_PATH,也就是250字符左右
b) 你使用的是不带文件路径的文件名,这样的文件名的具体位置依赖于”当前路径“,而很多人对当前路径的理解是错误的,它不是可执行文件所在位置,所以也许你看了不同位置的文件。你先试试输入完整路径再说
c)你在不停检查fp !=NULL,注意,除非你主动设置fp=NULL否则一旦它有值无论文件后续是否被关闭,它都不是NULL,所以只有fopen后那一个fp!=NULL有意义,其他都是错误
现在很多书都是垃圾,所以书照搬不是好标注,还是要好好理解语言,不要过分相信书
展开全部
这个大概率是软件出现了问题。你可以在文件中仔细的进行查找。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
文件没有内容的情况大致分为以下几种:
1,文件写入和打开的方式不一样,例如写入了2进制的0,但是使用记事本或其他类似的文本工具打开。建议检查文件属性,看文件的长度。
2,错误的使用了fprintf,fwrite,fflush,fopen,fclose。这类错误一般文件的长度为0。具体的需要参考代码。如果是Linux可以使用ltrace监控这些错误。
3,其他程序错误,例如多了或者少了*、&等符号。
4,书上的程序本身有错误,一本好书是非常重要的,如果发现的错误太多最好及时丢弃。
1,文件写入和打开的方式不一样,例如写入了2进制的0,但是使用记事本或其他类似的文本工具打开。建议检查文件属性,看文件的长度。
2,错误的使用了fprintf,fwrite,fflush,fopen,fclose。这类错误一般文件的长度为0。具体的需要参考代码。如果是Linux可以使用ltrace监控这些错误。
3,其他程序错误,例如多了或者少了*、&等符号。
4,书上的程序本身有错误,一本好书是非常重要的,如果发现的错误太多最好及时丢弃。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询