c语言中,怎么表示‘ctrl+z’的输入? 5

对用户输入的字符流(以ctrl+z结束)中的行,单词,和字符个数进行统计。这里的ctrl+z怎样表示?单词怎样统计?一楼说的,我有点糊涂... 对用户输入的字符流(以ctrl+z结束)中的行,单词,和字符个数进行统计。这里的ctrl+z怎样表示?单词怎样统计?
一楼说的,我有点糊涂
展开
 我来答
风若远去何人留
2015-06-05 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450133
专业C/C++软件开发

向TA提问 私信TA
展开全部

ctrl+z输入代表输入文件结束符。

在输入函数从输入流stdin中读取到这个标识时会以返回值形式通知主调函数。返回值根据函数不同可能为NULL或EOF。

NULL是空指针标识,值为0,在stdio.h中被定义为(void *)0。

EOF是End Of File的简写,它是一个宏定义,包含在stdio.h中,值为-1。

一下根据常用的输入函数,分别介绍如何检查ctrl+z的输入。


1 getchar()

该函数作用为返回一个输入流的字符。其返回类型为int。如果不用来检查EOF,那么可以把它的返回值直接赋值给char型或者unsigned char型。如果要检查EOF,则必须赋值给int型,否则会和输入中的0xff值混淆。

int c;
while(1)
{
    c = getchar();
    if(c == EOF) break;//检查到EOF退出循环
}

2 scanf()

该函数是格式输入函数,属于最常用的输入函数。一般不会去检查它的返回值。

其返回值为成功输入值的变量个数。如果后续参数列表个数(除第一个参数格式字符串外)与返回值不符,则代表出错。 当返回值为EOF代表检测到ctrl+z输入。

while(scanf(...)!=EOF)//当遇到EOF退出。scanf的参数在这里并不重要。
{
    //do something
}


3 gets()

该函数获取一行输入存为字符串,并把结尾的换行符转换为字符串结束符。

正常输入情况下,会返回输入的字符串指针。

当遇到ctrl + z输入时,它与其它输入函数不同,会返回NULL。

所以对于gets的判断可以写作:

char buf[1024];//用gets的时候一定要定义足够大空间,具体依实际应用要求。
while(gets(buf)!=NULL)//当为NULL时退出循环
{
    //do something
}
L_o_o_n_i_e
2010-03-28 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5238万
展开全部
while (1)
{
//这里写你的输入语句
if ( feof(stdin) ) break;
}
-------------
stdin -- 是键盘流. 如果是文件,填你的文件流名,也就是 fopen 返回的FILE *fp 名 fp.
C++ 也是判断 EOF
字符按ASCII值统计.
行按'\n'统计.
单词 按 字母 向 标点符号空白 切换变化(切入,切出) 统计.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
源语梦Hg
2010-03-28 · TA获得超过521个赞
知道小有建树答主
回答量:670
采纳率:100%
帮助的人:275万
展开全部
SHORT CtrlStatus = GetKeyState(VK_CONTROL);
SHORT ReturnStatus = GetKeyState(VK_Z);
if( (CtrlStatus & 0x80)==0x80 && (ReturnStatus & 0x80) == 0x80)
{
.....
}
VC中可以这样来用。应该在windows下都是这样调用函数吧。
行:统计\n个数
单词:空格个数
字符:sizeof
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泡子1990221
2010-03-28
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
呵呵 这个已经被宏定义了 eof是已经被定义了的 #define x EOF 然后就输入X 来结尾把
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式