标题:虚心
只看楼主
lndg
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-4-28
 问题点数:0 回复次数:19 
虚心
我是菜鸟,问个很初级的问题,请别笑话,因为确实不明白,书上的一个例子:
  #include<stdio.h>
  main()
{
long nc;
while(getchar() != EOF)
++nc;
printf("%d\n",nc);
}
请问这个程序输入什么才能结束?我无论输入什么都结束不了
搜索更多相关主题的帖子: 笑话 虚心 EOF main 结束 
2008-04-28 21:21
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
得分:0 
ctrl+Z然后回车(假如你用windows)

" border="0" />[color=white]
2008-04-28 21:28
c_acceleration
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2008-4-28
得分:0 
可以ctrl+D,如果你是linux

天道酬勤
2008-04-28 21:42
hundnn
Rank: 1
等 级:新手上路
帖 子:123
专家分:0
注 册:2007-8-23
得分:0 
while(getchar() != EOF)
这句是什么意思?我也初学/请说下。

只知道这是当循环。/但里面的表达式怎么没见过呢
2008-04-28 21:47
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
得分:0 
while(getchar() != EOF)
    nc++;

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

getchar() 读取到文件结尾就会返回 EOF    // EOF 一般为 -1

—>〉Sun〈<—
2008-04-28 21:58
kittking
Rank: 1
来 自:四川成都
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-4-22
得分:0 
输入-1
EOF就是定义为-1的

在夜的寂静里静静聆听时间流逝的声音......
2008-04-28 22:01
Sun_DN
Rank: 1
来 自:NEU
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-4-5
得分:0 
同意5楼所说,“Ctrl + Z 模拟文件结尾”
EOF不一定是-1,各编译器有所不同

人不己知,而不愠,不亦君子乎?
2008-04-28 22:11
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
得分:0 
EOF定义为-1是一个很好的选择,很它不应该大于等于0,-1又很符合程序员的习惯.

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2008-04-28 22:18
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
得分:0 
因此,我可这样说非常绝大多的编译器都不会冒险把EOF定义为其它的数.

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2008-04-28 22:19
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
得分:0 
输入-1是不行的,因为是getchar(),而-1是两个字符
如果这个程序是模拟读取文件中字符数的话,
应该把nc赋初值,打印时应该用%ld,即下面这样:
程序代码:
#include<stdio.h>
int main()
{
    long nc=0;
    while(getchar() != EOF)
        ++nc;
    printf("%ld\n",nc);
    return 0;
}

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-04-28 22:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-211532-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.124990 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved