设为首页收藏本站

八达网

 找回密码
 注册
查看: 580|回复: 27
打印 上一主题 下一主题

c码农进

[复制链接]

351

主题

4

好友

6万

积分

仲裁者

跳转到指定楼层
1
发表于 2013-12-19 16:10 |只看该作者 |倒序浏览
有个char是读文件读回来的,比如说是a\nb,print这个char就是a\nb
我想变成
a
b
这样,怎么弄?

452

主题

0

好友

2592

积分

坦克

2
发表于 2013-12-19 16:13 来自手机 |只看该作者
你读的是\\n
回复

使用道具 举报

351

主题

4

好友

6万

积分

仲裁者

3
发表于 2013-12-19 16:16 |只看该作者
没,读回来的就是a\nb那样,直接输出也是a\nb,没有给我把\n转成换行符
回复

使用道具 举报

452

主题

0

好友

2592

积分

坦克

4
发表于 2013-12-19 16:22 来自手机 |只看该作者
那就是\\n啊 哥哥 你要做的就是替换而已
回复

使用道具 举报

351

主题

4

好友

6万

积分

仲裁者

5
发表于 2013-12-19 16:31 |只看该作者
不行啊,说详细点好了
我用fgets读一个文件,文件就只有一行a\nb,然后把这一行存到一个char里面,然后printf那个char就会出现a\nb,改成a\\nb就是a\\nb,总之转意符完全无效了,我期望的是出现
a
b
怎么弄?
回复

使用道具 举报

23

主题

0

好友

4万

积分

大和

6
发表于 2013-12-19 16:33 |只看该作者
什么意思,直接打开文件里看见的就是a\nb ?
回复

使用道具 举报

351

主题

4

好友

6万

积分

仲裁者

7
发表于 2013-12-19 16:35 |只看该作者
Neutrino 发表于 2013-12-19 16:33
什么意思,直接打开文件里看见的就是a\nb ?

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

使用道具 举报

452

主题

0

好友

2592

积分

坦克

8
发表于 2013-12-19 16:42 |只看该作者
a\nb 是3个字符  ascii码的情况下占3个字节
你读的是4个字符a \ n b
这么说能理解吧
有些io系统会自动把字符\n转成回车
但c的不会
2861316437
2836235853
回复

使用道具 举报

351

主题

4

好友

6万

积分

仲裁者

9
发表于 2013-12-19 16:46 |只看该作者
rolin 发表于 2013-12-19 16:42
a\nb 是3个字符  ascii码的情况下占3个字节
你读的是4个字符a \ n b
这么说能理解吧

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

使用道具 举报

23

主题

0

好友

4万

积分

大和

10
发表于 2013-12-19 16:47 |只看该作者
MakubeX 发表于 2013-12-19 16:35
对,但我想输出时变成
a
b

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

使用道具 举报

351

主题

4

好友

6万

积分

仲裁者

11
发表于 2013-12-19 16:50 |只看该作者
Neutrino 发表于 2013-12-19 16:47
那你自己判断替换啊。
你在文件里看到什么那就是什么,还指望fgets一边读一边帮你替换?

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

使用道具 举报

7

主题

0

好友

220

积分

机枪兵

12
发表于 2013-12-19 17:01 |只看该作者
回复

使用道具 举报

23

主题

0

好友

4万

积分

大和

13
发表于 2013-12-19 17:01 |只看该作者
MakubeX 发表于 2013-12-19 16:50
没有一个函数可以直接把字符串里的转意符全部处理掉么?

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

1

查看全部评分

回复

使用道具 举报

351

主题

4

好友

6万

积分

仲裁者

14
发表于 2013-12-19 17:05 |只看该作者
Neutrino 发表于 2013-12-19 17:01
你从文件里读过来的不是转义字符,就是实际字符,这个上面已经说清楚了。
你是想把文件里的\n 这个字符串 ...

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

使用道具 举报

452

主题

0

好友

2592

积分

坦克

15
发表于 2013-12-19 17:08 |只看该作者
MakubeX 发表于 2013-12-19 17:05
真你妈麻烦...我还是回去玩python算了

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

使用道具 举报

351

主题

4

好友

6万

积分

仲裁者

16
发表于 2013-12-19 17:42 |只看该作者
Neutrino 发表于 2013-12-19 17:01
你从文件里读过来的不是转义字符,就是实际字符,这个上面已经说清楚了。
你是想把文件里的\n 这个字符串 ...

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

使用道具 举报

189

主题

0

好友

5172

积分

飞龙

17
发表于 2013-12-19 17:47 |只看该作者
rolin高呼熊大威武,立刻股票大赚得到3 水晶.      



伪熊密你暴露了
回复

使用道具 举报

452

主题

0

好友

2592

积分

坦克

18
发表于 2013-12-19 18:43 |只看该作者
我不是大米 发表于 2013-12-19 17:47
rolin高呼熊大威武,立刻股票大赚得到3 水晶.      

地主明鉴  真心熊密无疑
2861316437
2836235853
回复

使用道具 举报

452

主题

0

好友

2592

积分

坦克

19
发表于 2013-12-19 18:46 |只看该作者
MakubeX 发表于 2013-12-19 17:42
找出来然后换成什么?已经是\n怎么换成换行符?


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

小写了一段  没有测试 codepad 上没法读外部文件

  1. #include <stdio.h>
  2. int main(int argc,  char  *argv)
  3. {
  4.         char str1[50], str2[50];
  5.         FILE *fp = fopen(filename, "r");
  6.         fgets(str1, 50, fp);
  7.         int i = 0,  j=0;
  8.         while(str1[i] != '\0')
  9.         {
  10.                 if (str1[i] != '\\' &&  str1[i+1] != 'n')
  11.                         str2[j++] = str1[i];
  12.                 else
  13.                         str2[j++] = '\n', i++;
  14.                 i++;
  15.         }
  16.         str2[j] = '\0';
  17.         printf(str2);
  18.         return 0;
  19. }

复制代码
1

查看全部评分

2861316437
2836235853
回复

使用道具 举报

424

主题

5

好友

3078

积分

飞龙

20
发表于 2013-12-19 19:33 |只看该作者
换成'\r'
回复

使用道具 举报

8

主题

0

好友

1万

积分

航母

21
发表于 2013-12-19 23:26 |只看该作者
看着觉得马龙好屌啊

一股仰慕的感觉
回复

使用道具 举报

376

主题

8

好友

7万

积分

仲裁者

DON'T PANIC

22
发表于 2013-12-20 00:46 |只看该作者

看着觉得马龙好屌啊

一股仰慕的感觉
回复

使用道具 举报

174

主题

2

好友

4万

积分

仲裁[复制]

23
发表于 2013-12-20 02:09 |只看该作者
rolin高呼熊大威武,立刻股票大赚得到3 水晶.
回复

使用道具 举报

351

主题

4

好友

6万

积分

仲裁者

24
发表于 2013-12-20 10:21 |只看该作者
rolin 发表于 2013-12-19 18:46
。。。 我以为你都明白了 你看到的\n是两个字符 他不是回车  你要把这两个字符换成一个回车  或者windo ...

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

使用道具 举报

23

主题

0

好友

4万

积分

大和

25
发表于 2013-12-20 10:37 |只看该作者
rolin 发表于 2013-12-19 18:46
。。。 我以为你都明白了 你看到的\n是两个字符 他不是回车  你要把这两个字符换成一个回车  或者windo ...

main 函数都写错了....
回复

使用道具 举报

13

主题

1

好友

1001

积分

龙骑士

26
发表于 2013-12-20 11:58 |只看该作者
楼主的需求就是将文本文件里面的\n这两个字符变成程序里面\n 这一个换行符。。
回复

使用道具 举报

0

主题

0

好友

3万

积分

大和

27
发表于 2013-12-20 12:12 |只看该作者
看着觉得马龙好屌啊

一股仰慕的感觉
回复

使用道具 举报

424

主题

5

好友

3078

积分

飞龙

28
发表于 2013-12-20 12:32 |只看该作者
看着觉得马龙好屌啊

一股仰慕的感觉
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|八达网    

GMT+8, 2025-11-26 05:16

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部