标题:文件中文读取和存储的问题
只看楼主
Emotiona
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:311
专家分:581
注 册:2017-3-7
结帖率:97.5%
已结贴  问题点数:20 回复次数:12 
文件中文读取和存储的问题
从A,B文件读入两个字符串,然后排序存放在C文件中
其中B文件中有中文,读入的时候可以打印出来。char是1个字节,装不下一个中文。我想知道在什么地方修改,把中文存放到C文件中,同时也能打印出中文。

print file A :
I LOVE CHINA
print file B :
I LOVE 朱晓燕
Print file C :
涎粥忐    ACEEHIIILLNOOVV

Process returned 0 (0x0)   execution time : 0.379 s
Press any key to continue.


程序代码:
#include<stdio.h>
#include<stdlib.h>

int main()
{
    void file();
    file();
    return 0;
}

void file()
{
    FILE* fp;
    char C[100], ch;
    int i, j, n, i1, gap, temp;
    if ((fp = fopen("C:\\Users\\73889\\Desktop\\A.txt", "r"))==NULL)
    printf("Can not open file!\n");
    printf("print file A :\n");
    for( i = 0; (ch = fgetc(fp)) != EOF; i++)
    {
        C[i] = ch;
        putchar(C[i]);
    }
    fclose(fp);
    printf("\n");
    if ((fp = fopen("C:\\Users\\73889\\Desktop\\B.txt", "r"))==NULL)
    printf("Can not open file!\n");
    printf("print file B :\n");
    i1 = i;
    for (i = i1; (C[i] = fgetc(fp)) != EOF; i ++)
    putchar(C[i]);
    fclose(fp);
    n = i;
    for(gap = n / 2; gap > 0; gap /= 2)
    for(i = gap; i < n; i++)
    for(j = i - gap; j >= 0 && C[j] > C[j + gap]; j -= gap)
    {
            temp = C[j];
            C[j] = C[j + gap];
            C[j + gap] = temp;
    }
    printf("\nPrint file C :\n");
    fp = fopen("C:\\Users\\73889\\Desktop\\C.txt", "w");
    for (i = 0; i < n; i++)
    {
        fputc(C[i], fp);
        putchar(C[i]);
    }
    printf("\n");
    fclose(fp);
    return ;
}

搜索更多相关主题的帖子: execution continue 字符串 中文 file 
2017-04-18 16:23
kuochenchen
Rank: 2
等 级:论坛游民
帖 子:6
专家分:24
注 册:2017-4-18
得分:4 
用fgets和fputs嘛
2017-04-18 17:03
Emotiona
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:311
专家分:581
注 册:2017-3-7
得分:0 
回复 2楼 kuochenchen
要排序啊!不是整个字符串进行排序
2017-04-18 17:07
kuochenchen
Rank: 2
等 级:论坛游民
帖 子:6
专家分:24
注 册:2017-4-18
得分:0 
你把这两个字符串读出来储存在两个数组,用strcmp排序就是了啊
2017-04-18 17:12
kuochenchen
Rank: 2
等 级:论坛游民
帖 子:6
专家分:24
注 册:2017-4-18
得分:0 
不是整个字符串排序是什么意思,你要的排序规则是什么呢
2017-04-18 17:14
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:4 
看你基于啥心理来研究这个课题  如果是基于没事研究的心理

就先研究纯西文吧(ascii) 暂时先不要掺杂中文  中文这个环境匹配太闹心  

DO IT YOURSELF !
2017-04-18 17:22
Emotiona
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:311
专家分:581
注 册:2017-3-7
得分:0 
回复 6楼 wp231957
普通字符的比较没啥好研究的。我随手输入就来了中文,遇到了就想解决,后面肯定还会有这样的情况。
2017-04-18 17:31
Emotiona
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:311
专家分:581
注 册:2017-3-7
得分:0 
回复 5楼 kuochenchen
A,B两个文件中的字符串排序为一个字符串,保存到C文件中
2017-04-18 17:32
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:150
专家分:599
注 册:2017-3-5
得分:4 
是你想的太复杂,你都说是比较字符串了,你这个题目比较单个字符根本就没什么意义,直接用fscanf取出来再比较字符串,写文件就可以了
2017-04-18 20:57
qq2521782646
Rank: 2
等 级:论坛游民
帖 子:3
专家分:14
注 册:2017-4-19
得分:4 
看看回复长不长积分,
2017-04-20 22:07



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




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

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