使用putchar()在整数末尾添加换行符(C编程)?

5
我刚接触C编程,正在尝试弄清楚如何在使用putchar()函数打印int值后添加换行符("\n")。 在K&R的"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的方式实现。谢谢!


5
再加一个 putchar 调用,调用 putchar('\n') - Eugene Sh.
5
  1. C不是一种脚本语言。
  2. putchar 被调用时不叫做 putstring
  3. 没有冒犯的意思,但从你的文本来看,我建议从好书学习该语言,不要跳过章节。
  4. void main() 是无效的签名,最小签名应为 int main(void)
  5. K&R书籍没有涵盖现代C,需要获取更近期的教授至少C99的书籍,最好是涵盖标准C即C11的书籍。
- too honest for this site
3
除了 @Olaf 给出的建议外,如果你想学习 C 语言,那么请在编译时至少加入 -Wall -Wextra 参数以启用编译警告。要从编译器给出的警告中读取并学习信息(现在的编译器相当不错),最重要的是,在代码可以干净编译且没有警告之前,永远不要接受它。 - David C. Rankin
1
@Olaf和@David,感谢你们的建议!我原以为void main()意味着main()函数不需要返回值,但现在看来我理解错了,我一定会找一本新的书。 (我正在参加UC Berkeley CS61C - 计算机体系结构课程 - 他们推荐阅读K&R学习C语言。) - amucunguzi
1
@Mucuansel:在托管环境(如 POSIX,Windows,OSX 等)平台上,main 必须返回一个 int。然而只有在 此函数 中有个特殊的例外:您不需要明确地使用 return 0;。如果代码在不显式使用 return 的情况下到达函数结尾,则 main 是唯一具有隐式 return 0; 的函数。不过,使用显式 return 0; 是良好的编程风格。 - too honest for this site
显示剩余3条评论
1个回答

5

putchar函数一次只能输出一个字符。如果您想在每个字符后面打印换行符,请再调用putchar,并将换行符作为参数传递给它:

putchar(c);
putchar('\n');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接