【问题标题】:Add newline at the end of an integer using putchar() (C programming)?使用 putchar()(C 编程)在整数末尾添加换行符?
【发布时间】: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; 是一种很好的编码风格。

标签: c string file-io printf


【解决方案1】:

putchar 函数一次只写入一个字符。如果你想在每个字符后打印一个换行符,添加一个额外的调用putchar,给它一个换行符:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-28
    • 2015-11-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    相关资源
    最近更新 更多