gpt4 book ai didi

c - K&R 练习 1-23

转载 作者:行者123 更新时间:2023-11-30 21:18:02 29 4
gpt4 key购买 nike

我有两个与 C 编程语言中的标题练习相关的问题。我确信他们之前都已经得到过回答,因此无论是直接回答还是上一篇文章的链接(我找不到任何内容)都将不胜感激。

练习本身是编写一个从 C 代码中删除注释的 C 程序。

  1. 我看过很多这个程序的例子,但我不知道如何测试它。他们都使用 getchar() 来“获取”他们要编辑的代码,但我不知道如何告诉程序读取另一个文件,而不是仅仅等待命令行的输入。我尝试了“./a.out program_to_edit.c”,但这不起作用。或者,如果有一种简单的方法可以像其他语言一样从文本 block (而不是一次一个字符)创建字符串,那也可以。

  2. 这个问题有点笼统。我对使用 getchar() 读取 C 源代码时转义字符的工作原理感到困惑。如果我在 TextEdit 中查看 .c 文件,我会看到“\t”,但如果我编译它并将其打印出来,它将作为制表符出现。这是否意味着 .c 文件包含 '\\' 和 't' 并且编译器将它们组合在一起,或者完全是其他东西?如果我使用 getchar() 读取该文件,它会返回什么?

谢谢。

最佳答案

对于问题的第一部分,您阅读了一个类似这样的文件。您应该在“本书”中找到这方面的示例。

#include <stdio.h>

int main(void)
{
FILE *fp = fopen("Some_file.txt","rt");
if (fp != NULL)
{
int c = fgetc(fp);
while (c != EOF)
{
/* Do something with c */
}

fclose(fp);
}
else
{
printf("Can't open the file?\n");
}

return 0;
}

对于问题的第二部分,反斜杠表示反斜杠和接下来的字符被某些内容替换。

  • /t 被 (char) 9 替换,这是 ascii 制表符。
  • /a 被 (char) 7 取代,这是一个可听见的铃声
  • /n 在 unix 系统上被 (char) 10 替换,在 dos 系统上被 (char)13, (char) 10 替换。

重读一些内容。这是在“书”中。

欢迎来到 Stack Overflow。

关于c - K&R 练习 1-23,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30960907/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com