【发布时间】:2017-10-14 13:52:32
【问题描述】:
我是 C 编程的新手,我试图弄清楚如何在使用 putchar() 函数打印 int 值后添加换行符 ("\n")。在 K&R 的“The C Programming”一书中,他们提供了下面的脚本,但所有字符都打印在同一行上。如何修改代码以每行打印一个字符?
#include <stdio.h>
void main() {
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
我知道我可以像这样使用 printf():
printf("%d\n", c);
但我想知道 C 编程和 putchar() 函数是否有类似的东西:
putchar(str(c)+"\n");
有点像你在 python 中做的方式。谢谢!
【问题讨论】:
-
添加另一个
putchar电话。putchar('\n') -
1) C 不是脚本语言。 2) putchar 不称为 putstring。 3)没有冒犯,但从你的文字来看,我建议从一本好书中学习语言而不是跳过章节。 4)
void main()是无效签名。最小签名为int main(void)。 5) K&R 不涵盖现代 C;获得一本更新的书,该书至少教 C99,更好的标准 C 是 C11。 -
除了@Olaf 提供的智慧之外,如果您想学习C,请始终启用编译器警告,至少在您的编译中包含
-Wall -Wextra字符串,阅读并从编译器告诉您的内容中学习(这些天它们非常好),最重要的是,从不接受代码,直到它干净地编译,没有警告。 -
@Olaf & @David,感谢您的建议!我认为
void main()意味着 main() 函数不期望return值,但听起来我错了,肯定会得到一本最近的书。 (我正在学习 UC Berkeley CS61C - 计算机架构 - 他们推荐阅读 K&R 来学习 C。) -
@Mucuansel:
main必须在托管环境(POSIX、Windows、OSX 等)平台上返回int。但是,this 函数有一个特殊例外:您不需要显式的return 0;。main是唯一具有隐式return 0;的函数,如果代码在没有显式return的情况下到达函数末尾。不过,使用显式return 0;是一种很好的编码风格。