标题:[txt文件读写问题]不换行
只看楼主
andrewkewang
Rank: 2
等 级:论坛游民
帖 子:44
专家分:42
注 册:2013-11-22
结帖率:88.89%
已结贴  问题点数:20 回复次数:9 
[txt文件读写问题]不换行
代码是这样的:
#include <stdio.h>
#include <string.h>
int main(void)
{
    char name[255];
    FILE *fp_read = fopen("a.txt", "r");

    fgets(name, strlen(name)+1, fp_read);
    printf("%s",name);
    fgets(name, strlen(name)+1, fp_read);
    printf("%s",name);

    return (0);
}
a.txt文件里的内容(两个句子在不同行)是:
这是一个坏天气。
今天在下雨。

这样打印到屏幕上的句子被分到了两行。
我想让这两个句子在同一行显示。应该怎么做?
是应该在第一个printf打印出句子之后,让光标移回到上一行句子的结尾吗?
搜索更多相关主题的帖子: include return 天气 
2013-11-24 18:52
andrewkewang
Rank: 2
等 级:论坛游民
帖 子:44
专家分:42
注 册:2013-11-22
得分:0 
求大神指点
2013-11-24 19:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:20 
本來搞明白你上一個問題,自然能解決這個,可見是不求甚解。

授人以渔,不授人以鱼。
2013-11-24 19:38
andrewkewang
Rank: 2
等 级:论坛游民
帖 子:44
专家分:42
注 册:2013-11-22
得分:0 
哎,还是不明白,那该怎么做?请提示一下吧。
2013-11-24 19:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
你從數據流中讀到'\n'不會不輸出的麼?

授人以渔,不授人以鱼。
2013-11-24 20:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
本質上你就沒弄明白所謂的漢字就是雙字節字符,即由兩個字符拼合成的字符序列,所以儘管人家告訴你逐個字符讀入就能得到漢字串,你也不明白其實不過是不區別地把所有字符一股腦兒地一個一個讀進來。在逐個讀入字符流的過程中,就可以順便識別出各種字符,包括'\n',在需要時把它過濾掉,自然不會在輸出時有回車換行現象。換句話說,你也可以在任意地方加插字符'\n'使文本在輸出時折行——記事本的“自動折行”功能就是這樣實現的。

學編程先練基本招式,其實你都學過,但就是不注重原理。原理的重要性,再怎麼強調都不過份,基本功好,再懂原理,自然能做出各種複雜動作。千萬不要去練人家給出的套路,人家給了你代碼,不求甚解,永遠也不會變招,那就是死套路。這樣學習是不行的。

[ 本帖最后由 TonyDeng 于 2013-11-24 20:10 编辑 ]

授人以渔,不授人以鱼。
2013-11-24 20:07
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
逐個字節地處理漢字,是20多年前的老辦法了,現在的系統早已不是這樣。

授人以渔,不授人以鱼。
2013-11-24 20:13
andrewkewang
Rank: 2
等 级:论坛游民
帖 子:44
专家分:42
注 册:2013-11-22
得分:0 
哎,求教了。现在自学C语言当中,还请以后各位多多指点。不胜感激...
原理的重要性知道了,会多看看书补充自己的。
2013-11-24 20:18
andrewkewang
Rank: 2
等 级:论坛游民
帖 子:44
专家分:42
注 册:2013-11-22
得分:0 
回复 7楼 TonyDeng
原来是这么古老的办法了啊,我也弄了好久才想到这个办法来识别汉字的。
看来,在一开始就走弯路了。
哎.......C语言还是有太多的不懂了。
只好多看书了吧。
2013-11-24 20:25
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
逐個字符處理的方法,叫ANSI字符編碼,現在的系統,多用Unicode(但也兼容ANSI),不用逐個字符分析前綴和後綴來辨別是否漢字的,特別是Unicode-16,把所有字符(包括傳統的英文ANSI字符)都編碼成雙字節,統一處理,簡便得多。在互聯網上,多用uft-8編碼,字符編碼是不定長的,從短到單字節,到長達4字節都有,比較麻煩。有各種各樣不同的編碼體系,所以你不要以為學會了一樣就可以。

授人以渔,不授人以鱼。
2013-11-24 20:32



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




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

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