gpt4 book ai didi

c - 如何用 C 语言自行运行文件读取程序?

转载 作者:行者123 更新时间:2023-11-30 18:28:52 25 4
gpt4 key购买 nike

我只有 Java 经验,我开始通过 K&R C 书第二次补充来学习 C。在第一章中,他们的一个例子是这个程序,它简单地计算空格、字符和数字:

#include <stdio.h>


main()
{
int c, i, nwhite, nother;
int ndigit[10];

nwhite = nother = 0;
for(i = 0; i < 10; i++){
ndigit[i] = 0;
}

while((c = getchar()) != EOF){
if(c >= '0' && c <= '9'){
++ndigit[c-'0'];
}
else if (c == ' ' || c == '\n' || c == '\t'){
++nwhite;
}
else{
++nother;
}
}

printf("digits =");
for(i = 0; i <10; ++i){
printf(" %d", ndigit[i]);
}
printf(", white space = %d, other = %d\n", nwhite, nother);

}

接下来,在书中他们说“这个程序在其自身上运行的输出是”,然后是它的输出。但是,我已经在终端中编译了该程序,但无法弄清楚如何在 C 中运行该程序。在 java 中,我会将文件名传递给 String args[0] 并从那里读取它,但是这个程序没有任何类似的机制,并且似乎没有要传递的 args 数组。即使确实如此,代码本身似乎也没有从任何特定文件中读取(例如,在 java 中,您可以专门设置一个扫描器来读取 args[0],然后调用 Scanner.next() 等,但在这个程序,它只是调用 getchar() ,看起来什么也没有)。谁能帮我解决这个问题,以便我可以在继续之前运行该程序?抱歉,如果这是 super 简单的事情,就像我说的那样,我在 C 方面的经验是不存在的。谢谢!

此外,我在该网站上的格式很垃圾,我很抱歉

最佳答案

我认为他们打算像这样运行这个程序:

./example < example.c

关于程序不打开文件并且不使用参数这一事实,您是正确的。 getchar() 函数在标准输入上运行。如果您在编译文件上使用该程序,则没有多大意义,因此这就是为什么我认为它应该与源文件一起运行。我发现这些说明是多么令人困惑。

关于c - 如何用 C 语言自行运行文件读取程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43969296/

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