注册 登录
编程论坛 C语言论坛

为什么《C程序设计语言》这本书里的代码在电脑上无法运行?

Neutrino 发布于 2021-05-17 22:37, 3326 次点击
新手刚学C语言,看的教材是《C程序设计语言》这本书,但是书里的代码敲在电脑上发现运行不了。。。没有出错也没有任何输出,很懵,求大神解答!
不能运行的代码如:
#include<stdio.h>

main() {
    long c,n1;
   
    n1=0;
    while((c=getchar())!=EOF)
        if(c=='\n')
        ++n1;
    printf("%d\n",n1);
   
}
14 回复
#2
我善治鬼2021-05-17 22:43
main()    // 这里应该改成int main()
 {   
    long c,n1;
   
    n1=0;
    while((c=getchar())!=EOF)
        if(c=='\n')
        ++n1;
    printf("%d\n",n1);
   
}
#3
rjsp2021-05-18 08:42
看的教材是《C程序设计语言》这本书
少看这种过时且谬误的书籍

没有出错
你这个“没有出错”是指什么?
是指没看到有任何信息,还是看到了编译成功的信息?

也没有任何输出
你按照代码的要求输入数据了吗?

程序代码:
#include <stdio.h>

int main( void )
{
    size_t n = 0;
    for( int ch; ch=getchar(), ch!=EOF; )
        if( ch == '\n' )
            ++n;
    printf( "%zu\n", n );
}
#4
apull2021-05-18 10:01
顶楼上,谭某的这本书确实不行

键盘输入EOF用Ctrl+Z
#5
zbjzbj2021-05-18 15:36
现在的电脑太快了,一点击运行瞬间就运行完了,然后迅速清理了现场,就像没发生过一样。
找到你编译后的exe文件,在cmd窗口重新运行一下看看。
#6
Neutrino2021-05-18 18:59
回复 4楼 apull
谢谢!但是我用苹果电脑按control+z还是出不来EOF,,,另外,这本书是大家都推荐的Kernighan写的,,,不是谭浩强那本
#7
Neutrino2021-05-18 19:00
回复 2楼 我善治鬼
谢谢!其实我都试过加int了,还是不行。。。
#8
Neutrino2021-05-18 19:02
回复 3楼 rjsp
谢谢大佬!因为我找了好多文章,大家都推荐机械工业出版社Kernighan的这本书,不过我发现这本书上的很多代码我完整复制了但都运行不了,大神有其他的教材推荐吗?
#9
Neutrino2021-05-18 19:03
回复 3楼 rjsp
没有出错的意思是没有任何提示,我按要求输入了数字但是按回车键没有任何输出。。。
#10
Neutrino2021-05-18 19:04
回复 5楼 zbjzbj
谢谢!不过我用的是在线编译器。。。没有下载Xcode
#11
zbjzbj2021-05-18 21:11
回复 10楼 Neutrino
你发的代码我试了,没有问题。正常运行。
书上的代码不可能都错,有些涉及字符集的问题,如果自己不会查问题,那就照着书上敲一遍。
不用换书了,换思维吧。
#12
apull2021-05-18 21:27
这个代码会一直运行,要求输入,直到输入EOF才会结束。
gcc能正常运行。long int用"%ld"输出。

windows Ctrl+Z输入EOF
只有本站会员才能查看附件,请 登录


mac 15 command+D输入EOF
只有本站会员才能查看附件,请 登录
#13
Neutrino2021-05-20 20:47
回复 11楼 zbjzbj
谢谢回复,我确实是照着书上敲的,为什么大家会觉得我没有照着书上敲呢?问题大约出在我用的编译器、系统以及有些知识还不明白有关,小白刚起步确实有很多问题不懂,我也没有换书,在一直尝试寻找问题解决问题,这个论坛本身就是寻求帮助的论坛,希望大家能够友善沟通!如果你不能真的解决我的问题,就不用再回复了,谢谢

[此贴子已经被作者于2021-5-20 20:56编辑过]

#14
Neutrino2021-05-20 21:12
回复 12楼 apull
谢谢,我知道问题在哪里了,因为我用的是苹果电脑是Linux系统,所以输入EOF不是ctrl+Z,而应该是ctrl+D,输入之后程序就结束了所以不会有任何输出,终于搞懂了,谢谢您。
#15
杨平平是也2023-03-29 20:04
回复 4楼 apull
可以告知一下,为什么要Ctrl+Z才可以吗?
1