c语言文件

这个先新建一个file1.bat文件,打入OneWorld,OneDream!可以成功运行,但是出来的file2.bat也大写转换成小写了,但是大约几个空格后出现了乱码烫... 这个先新建一个file1.bat文件,打入 One World,One Dream!可以成功运行,但是出来的file2.bat 也大写转换成小写了,但是 大约几个空格后出现了乱码 烫什么箭头,为什么 展开
 我来答
百度网友3eb3f7d
2014-06-12 · TA获得超过433个赞
知道小有建树答主
回答量:208
采纳率:100%
帮助的人:77.2万
展开全部

回答你的问题之前,你的程序的循环体设计有错误,while和for只保留一个即可。为了回答主题,我任选一个作为例子,改为:

去掉while,改写for:

    for(i=0;i<30 && !feof(fp1); i++)

   { 循环体不变 }

现在回答主题:

因为str在使用前没有初始化为0.fputs使用的是null terminated的字符串,也就是说,最后一个字符是0,表示串结束。你在向str赋值时的代码中并没有为最后一个字符赋值0.有两种改法:

  1. 在for循环体之后加一句:此改法意味着你的文件长度只能小于30,如果大于等于30会出错

    if(i<30)

      str[i]=0;

  2. 在for开始前加一句: 这一样要求你的文件长度只能小于30

    memset(str,0,30);

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式