MakubeX 发表于 2013-12-19 16:10

c码农进

有个char是读文件读回来的,比如说是a\nb,print这个char就是a\nb
我想变成
a
b
这样,怎么弄?

rolin 发表于 2013-12-19 16:13

你读的是\\n

MakubeX 发表于 2013-12-19 16:16

没,读回来的就是a\nb那样,直接输出也是a\nb,没有给我把\n转成换行符

rolin 发表于 2013-12-19 16:22

那就是\\n啊 哥哥 你要做的就是替换而已

MakubeX 发表于 2013-12-19 16:31

不行啊,说详细点好了
我用fgets读一个文件,文件就只有一行a\nb,然后把这一行存到一个char里面,然后printf那个char就会出现a\nb,改成a\\nb就是a\\nb,总之转意符完全无效了,我期望的是出现
a
b
怎么弄?

Neutrino 发表于 2013-12-19 16:33

什么意思,直接打开文件里看见的就是a\nb ?

MakubeX 发表于 2013-12-19 16:35

Neutrino 发表于 2013-12-19 16:33 static/image/common/back.gif
什么意思,直接打开文件里看见的就是a\nb ?

对,但我想输出时变成
a
b

rolin 发表于 2013-12-19 16:42

a\nb 是3个字符  ascii码的情况下占3个字节
你读的是4个字符a \ n b
这么说能理解吧
有些io系统会自动把字符\n转成回车
但c的不会

MakubeX 发表于 2013-12-19 16:46

rolin 发表于 2013-12-19 16:42 static/image/common/back.gif
a\nb 是3个字符  ascii码的情况下占3个字节
你读的是4个字符a \ n b
这么说能理解吧


那么要怎么弄才能把那个该死的换行符弄出来?直接赋值打印出来倒是可以...

Neutrino 发表于 2013-12-19 16:47

MakubeX 发表于 2013-12-19 16:35 static/image/common/back.gif
对,但我想输出时变成
a
b

那你自己判断替换啊。
你在文件里看到什么那就是什么,还指望fgets一边读一边帮你替换?

MakubeX 发表于 2013-12-19 16:50

Neutrino 发表于 2013-12-19 16:47 static/image/common/back.gif
那你自己判断替换啊。
你在文件里看到什么那就是什么,还指望fgets一边读一边帮你替换?

没有一个函数可以直接把字符串里的转意符全部处理掉么?

ak4748520 发表于 2013-12-19 17:01

{:5_148:}

Neutrino 发表于 2013-12-19 17:01

MakubeX 发表于 2013-12-19 16:50 static/image/common/back.gif
没有一个函数可以直接把字符串里的转意符全部处理掉么?

你从文件里读过来的不是转义字符,就是实际字符,这个上面已经说清楚了。
你是想把文件里的\n 这个字符串,全部替换成 换行符。
C库没字符串替换函数,字符串查找函数是:size_t  strcspn(const char *s1, const char *s2)

MakubeX 发表于 2013-12-19 17:05

Neutrino 发表于 2013-12-19 17:01 static/image/common/back.gif
你从文件里读过来的不是转义字符,就是实际字符,这个上面已经说清楚了。
你是想把文件里的\n 这个字符串 ...

真你妈麻烦...我还是回去玩python算了

rolin 发表于 2013-12-19 17:08

MakubeX 发表于 2013-12-19 17:05 static/image/common/back.gif
真你妈麻烦...我还是回去玩python算了

学c就是要享受重复造轮子的快感
想想用了几年之后一堆自主产权的libs多有成就感

MakubeX 发表于 2013-12-19 17:42

Neutrino 发表于 2013-12-19 17:01 static/image/common/back.gif
你从文件里读过来的不是转义字符,就是实际字符,这个上面已经说清楚了。
你是想把文件里的\n 这个字符串 ...

找出来然后换成什么?已经是\n怎么换成换行符?

我不是大米 发表于 2013-12-19 17:47

rolin高呼熊大威武,立刻股票大赚得到3 水晶.      [:123]



伪熊密你暴露了

rolin 发表于 2013-12-19 18:43

我不是大米 发表于 2013-12-19 17:47 static/image/common/back.gif
rolin高呼熊大威武,立刻股票大赚得到3 水晶.      




地主明鉴  真心熊密无疑

rolin 发表于 2013-12-19 18:46

MakubeX 发表于 2013-12-19 17:42 static/image/common/back.gif
找出来然后换成什么?已经是\n怎么换成换行符?

。。。 我以为你都明白了 你看到的\n是两个字符 他不是回车  你要把这两个字符换成一个回车  或者windows上\直接 换成\r也行

小写了一段  没有测试 codepad 上没法读外部文件
#include <stdio.h>
int main(int argc,  char  *argv)
{
        char str1, str2;
        FILE *fp = fopen(filename, "r");
        fgets(str1, 50, fp);
        int i = 0,  j=0;
        while(str1 != '\0')
        {
                if (str1 != '\\' &&  str1 != 'n')
                        str2 = str1;
                else
                        str2 = '\n', i++;
                i++;
        }
        str2 = '\0';
        printf(str2);
        return 0;
}

刁总书记 发表于 2013-12-19 19:33

换成'\r'

477_ 发表于 2013-12-19 23:26

看着觉得马龙好屌啊

一股仰慕的感觉

国妓米兰 发表于 2013-12-20 00:46


看着觉得马龙好屌啊

一股仰慕的感觉

羊羊羊 发表于 2013-12-20 02:09

rolin高呼熊大威武,立刻股票大赚得到3 水晶.

MakubeX 发表于 2013-12-20 10:21

rolin 发表于 2013-12-19 18:46 static/image/common/back.gif
。。。 我以为你都明白了 你看到的\n是两个字符 他不是回车  你要把这两个字符换成一个回车  或者windo ...

测了下还真有点小问题...不过这下完全懂了,剩下的我自己弄,谢啦

Neutrino 发表于 2013-12-20 10:37

rolin 发表于 2013-12-19 18:46 static/image/common/back.gif
。。。 我以为你都明白了 你看到的\n是两个字符 他不是回车  你要把这两个字符换成一个回车  或者windo ...

main 函数都写错了....

tangsa 发表于 2013-12-20 11:58

楼主的需求就是将文本文件里面的\n这两个字符变成程序里面\n 这一个换行符。。

Mr.Red 发表于 2013-12-20 12:12

看着觉得马龙好屌啊

一股仰慕的感觉

刁总书记 发表于 2013-12-20 12:32

看着觉得马龙好屌啊

一股仰慕的感觉
页: [1]
查看完整版本: c码农进