当前位置: 代码迷 >> C语言 >> 虚心
  详细解决方案

虚心

热度:297   发布时间:2008-04-28 21:21:11.0
虚心
我是菜鸟,问个很初级的问题,请别笑话,因为确实不明白,书上的一个例子:
  #include<stdio.h>
  main()
{
long nc;
while(getchar() != EOF)
++nc;
printf("%d\n",nc);
}
请问这个程序输入什么才能结束?我无论输入什么都结束不了
搜索更多相关的解决方案: 笑话  虚心  EOF  main  结束  

----------------解决方案--------------------------------------------------------
ctrl+Z然后回车(假如你用windows)

[color=white]
----------------解决方案--------------------------------------------------------
可以ctrl+D,如果你是linux
----------------解决方案--------------------------------------------------------
while(getchar() != EOF)
这句是什么意思?我也初学/请说下。

只知道这是当循环。/但里面的表达式怎么没见过呢
----------------解决方案--------------------------------------------------------
while(getchar() != EOF)
    nc++;

// 读取字符一直到文件结尾
// Ctrl + Z 模拟文件结尾

getchar() 读取到文件结尾就会返回 EOF    // EOF 一般为 -1
----------------解决方案--------------------------------------------------------
输入-1
EOF就是定义为-1的
----------------解决方案--------------------------------------------------------
同意5楼所说,“Ctrl + Z 模拟文件结尾”
EOF不一定是-1,各编译器有所不同
----------------解决方案--------------------------------------------------------
EOF定义为-1是一个很好的选择,很它不应该大于等于0,-1又很符合程序员的习惯.
----------------解决方案--------------------------------------------------------
因此,我可这样说非常绝大多的编译器都不会冒险把EOF定义为其它的数.
----------------解决方案--------------------------------------------------------
输入-1是不行的,因为是getchar(),而-1是两个字符
如果这个程序是模拟读取文件中字符数的话,
应该把nc赋初值,打印时应该用%ld,即下面这样:
程序代码:

#include<stdio.h>
int main()
{
    long nc=0;
    while(getchar() != EOF)
        ++nc;
    printf("%ld\n",nc);
    return 0;
}

----------------解决方案--------------------------------------------------------
  相关解决方案