printf 输出转行符"\n"无效

take2 2014-01-11 01:15:57
新人学C,第一个printf这里就遇到问题。
我希望用printf输入出各种转义字符本身及结果,并且每个printf在输出结果后都转行。但是最终的输入出结果似乎\n没有转行成功(如图)。谁能帮我改改?如果您有时间顺便说明一下原因。谢谢!
编译器用的是dev C++



#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(void) {
printf("\\n是转行符,输出结果:\n");
printf("\\0是空字符,输出结果:\0\n");
printf("\\r是回车符,输出结果:\r\n");
printf("\\t是水平制表符,输出结果:\t\n");
printf("\\v是垂直水平制表符,输出结果:\v\n");
printf("\\b是水平制表符,输出结果:\b\n");
printf("\\t是水平制表符,输出结果:\t\n");
printf("\\\'是单引号,输出结果:\'\n");
printf("\\\"是双引号,输出结果:\"\n");
system("pause");
return 0;
}
...全文
4566 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-01-13
  • 打赏
  • 举报
回复
在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。
lin5161678 2014-01-12
  • 打赏
  • 举报
回复
明明换行了 为什么 你会看不到呢 \0 那一行消失了你却没反应
Mr. Code 2014-01-12
  • 打赏
  • 举报
回复
引用 6 楼 KenZhang1031 的回复:
别用dev c++了,换个编译器吧,vs2012和mingw gcc,我试过都没有问题。
顺便说下,我是win7 64位下运行的。我试试如果在XP下也是一样的效果,也许就参考换你推荐的编译器或vc6.0再试吧。因为现在是照着《狂人C》那本书来学的,里面的例子都是用DEV C++来编写,我就想着照着来轻松点。 [/quote]我也是win7 64位的环境,gcc版本4.8.2。
辰岡墨竹 2014-01-12
  • 打赏
  • 举报
回复
在最后一个printf后要调用fflush(stdout)。否则输出缓冲区是不会刷新的。
angel_su 2014-01-12
  • 打赏
  • 举报
回复
DEV C++是ide,编译的时候是调度别人的编译器,感觉编译器没那么笨吧,少了两行,用其他编辑器打开源代码看看是不是跟ide里显示的不一样...
take2 2014-01-12
  • 打赏
  • 举报
回复
引用 8 楼 lin5161678 的回复:
明明换行了 为什么 你会看不到呢 \0 那一行消失了你却没反应
对哦,我那一行怎么连汉字都没了???太奇怪了。明天回到家里得再好好研究下。 今天码好这些测试不成功就上来求助了,走得急没仔细看,首先就是注意到了转行的问题。
take2 2014-01-12
  • 打赏
  • 举报
回复
引用 4 楼 derekrose 的回复:
你应该关心的是第二个printf为什么fail了
引用 8 楼 lin5161678 的回复:
明明换行了 为什么 你会看不到呢 \0 那一行消失了你却没反应
新人不大懂。因为我也不知道printf("\0\n)是与printf("\n")是否是一样的。 \n的转行是否建立在那一行存在的基础上,是不是可以认为\0其实是空字符,根本不占一行,所以之后也不存在转行一说?
引用 6 楼 KenZhang1031 的回复:
别用dev c++了,换个编译器吧,vs2012和mingw gcc,我试过都没有问题。
顺便说下,我是win7 64位下运行的。我试试如果在XP下也是一样的效果,也许就参考换你推荐的编译器或vc6.0再试吧。因为现在是照着《狂人C》那本书来学的,里面的例子都是用DEV C++来编写,我就想着照着来轻松点。 另外,谢谢大家热心解答,不知道分该给谁好。
buyong 2014-01-11
  • 打赏
  • 举报
回复
dev c++内部就是mingw吧
Mr. Code 2014-01-11
  • 打赏
  • 举报
回复
别用dev c++了,换个编译器吧,vs2012和mingw gcc,我试过都没有问题。
moobright 2014-01-11
  • 打赏
  • 举报
回复
在vc6.0其他都正常,就第二个不能换行了……
derekrose 2014-01-11
  • 打赏
  • 举报
回复
你应该关心的是第二个printf为什么fail了
Fighting-阙 2014-01-11
  • 打赏
  • 举报
回复
在VC6.0运行正常。。。
Mr. Code 2014-01-11
  • 打赏
  • 举报
回复
看代码没什么问题。\0是字符串结尾,后面的字符\n输不出来是正常的,所以该行打印不会换行,但其他的应该都能换行。
Pump天天学习 2014-01-11
  • 打赏
  • 举报
回复
vc6.0正常

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧