标题:请教各位大佬们 一个关于文件操作的问题
只看楼主
echo000
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-9-27
结帖率:0
已结贴  问题点数:20 回复次数:8 
请教各位大佬们 一个关于文件操作的问题
求助大佬们啊   题目要求是读取一个文件并在每个字符之间输入一个空格  ,并保存在另一个文件中 我不输入空格的时候能正常读入,但我把空格加进去的时候就出现汉字变成乱码的情况  请问大神们这是怎么回事啊  输入空格我用的是
char kongge;
putc(kongge,fp);
搜索更多相关主题的帖子: 文件 操作 输入 空格 汉字 
2017-09-27 20:17
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:7 
请附上代码。

早知做人那么辛苦!  当初不应该下凡
2017-09-27 22:25
echo000
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-9-27
得分:0 
回复 楼主 echo000
好的好的  麻烦您了
#include <stdio.h>
#include <stdlib.h>
int main()
{
    char ch[3],kongge;
    FILE *fp;
    FILE *fb;
    if(!(fp=fopen("test.txt","r+")))
    {
        printf("cant open the test.txt");
        system("pause");
        return 0;
    }
    if(!(fb=fopen("testtest.txt","a"))){
        printf("cant open the testtest.txt");
        system("pause");
    }
    kongge=' ';
    fgets(ch,2,fp);
    while(!feof(fp)){
      fputs(ch,fb);
      fgets(ch,2,fp);
      putc(kongge,fb);      
           
        
    }
    fclose(fp);
    fclose(fb);
    system("pause");
    return 0;
2017-09-28 12:58
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:0 
回复 3楼 echo000
这个读文字我不会

早知做人那么辛苦!  当初不应该下凡
2017-09-28 14:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:7 
我最感兴趣的是,你一开始为什么不给出代码?!
在 你的代码出错了 和 这世界出错了 之间,你倾向于后者,所以不愿给出代码。或者是,你模糊地描述一下问题,别人就能像神仙一样知道你代码是怎么写的,又错在什么地方。

另一个使我迷惑的地方是,你这题目要求哪里来的,为什么汉字等非asc字符也要考虑?我个人建议你先问一问你的老师,是否要考虑非asc字符的情况

你的代码就比较搞了,文本方式打开、还追加方式、fgets,最扯蛋的就是瞎用feof了。
以上都不谈,假如你想将一个文本中的字符用空格隔开,步骤如下
1. 以二进制方式打开文件
2. 判断有无BOM头,有的话,直接获得文本的编码;没有的话,就得通过内容去猜测,当然了,不能保证100%猜得正确
3. 读取文件内容,根据第二步获得的编码,正确分割字符
4. ……(没什么好说的)

最难的就是第二步,你看windows自带的记事本程序,输入"a b c ",保存为ANSI格式,关闭再次打开时乱码了,因为windows将它猜测为 utf32-little endian 格式了。这还是最简单的,你让台湾人发个BIG5编码过来,放到默认GB2312的电脑上,猜死都不可能正确。
2017-09-28 14:57
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
文件都应有规范的吧
最好先了解或制定文件的格式,然后按格式读写。
2017-09-28 15:37
echo000
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-9-27
得分:0 
回复 5楼 rjsp
你好你好  抱歉啊我也是第一次发帖子,所以很多地方还不懂的  因为我们刚开学还没有带电脑,所以代码都是借的学长的电脑打的,所以就没附上,实在抱歉   
还有那个feof是我在一个视频里看到的,就照搬了
我觉得这个乱码的问题应该就是二进制的问题,可我也是刚接触   不能准确判断,也不知道如何能把txt的文件按二进制打开呢?
如果可以的话  能不能请您写一下代码呢?
另外题目的话  我再详细一点吧   
  将所给的test.txt文件进行处理,处理后的相邻的字符之间均有一个空格,并保存在作业3.txt中
  test.txt内容大致如此   c语言是一门编程语言,之类的,里面有英文和中文
麻烦您了多谢多谢
2017-09-28 16:24
echo000
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-9-27
得分:0 
回复 4楼 炎天
嗯嗯还是谢谢您
2017-09-28 16:24
echo000
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-9-27
得分:0 
回复 6楼 吹水佬
嗯。。。。。没看懂呢。。。。是什么意思啊。??
2017-09-28 16:28



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




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

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