【发布时间】:2015-06-21 03:07:29
【问题描述】:
我有两个与题名练习相关的问题,来自 The C Programming Language。我确信他们之前都已经得到了回答,所以直接回答或链接到以前的帖子(我找不到任何帖子)将不胜感激。
练习本身是编写一个从 C 代码中删除 cmets 的 C 程序。
我见过很多这个程序的例子,但我不知道如何测试它。他们都使用 getchar() 来“获取”他们要编辑的代码,但我不知道如何告诉程序读取另一个文件,而不是只等待来自命令行的输入。我试过“./a.out program_to_edit.c”,但没有奏效。或者,如果有一种简单的方法可以像在其他语言中那样从文本块(而不是一次一个字符)中创建一个字符串,那也可以。
这个问题有点笼统。使用 getchar() 读取 C 源代码时,我对转义字符的工作方式感到困惑。如果我在 TextEdit 中查看 .c 文件,我会看到“\t”,但如果我编译它并打印出来,它会以制表符的形式出现。这是否意味着 .c 文件包含 '\\' 和 't' 并且编译器将它们组合在一起,还是完全不同?如果我使用 getchar() 读取该文件,它会返回什么?
谢谢。
【问题讨论】:
-
不要用那本书,它已经很过时了。
-
如果有更多的人从“The Book”开始,世界将会变得更美好
标签: c stdio kernighan-and-ritchie