当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : linux上怎么用键盘输入EOF??(ctrl-D和ctrl-Z都不行呀)(顺便再问一下怎么通过双击来运行c程序)
帖子发表于 : 2016-07-21 19:31 

注册: 2015-06-19 21:16
帖子: 41
送出感谢: 26
接收感谢: 0 次
linux上怎么用键盘输入EOF?
我试过ctrl-D 和ctrl-Z都不行阿
(运行程序在终端里用./ 但要是在图形界面里通过双击来运行该怎么写代码??谢谢)


代码:
#include<stdio.h>
#include<string.h>
int main()
{
   char c;
   int space=0,table=0,enter=0;
   printf("please enter something\n");
   scanf("%c",&c);
   while(c!=EOF)
   {
      switch (c)
      {
         case 10:enter++;break;
         case 32:space++;break;
         case   9:table++;break;
      }
   }
   printf("空格:%d\n回车:%d\n水平制表符:%d\n",space,enter,table);
   getchar();
   return 0;
}


最后由 hanis_ghost 编辑于 2016-07-22 18:19,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: linux上怎么用键盘输入EOF??(ctrl-D和ctrl-Z都不行呀)
帖子发表于 : 2016-07-21 22:13 
头像

注册: 2008-09-18 13:11
帖子: 2797
送出感谢: 1
接收感谢: 458
ctrl+d就可以,但不能用scanf来获取。不信的话把scanf改成c=getchar(),并在运行程序后只输入ctrl+d。
如果输入其他字符就成了死循环所以再按ctrl+d就没效果了。



_________________
评价: 3.7% hanis_ghost
 
页首
 用户资料  
 
3 楼 
 文章标题 : Re: linux上怎么用键盘输入EOF??(ctrl-D和ctrl-Z都不行呀)(顺便再问一下怎么通过双击来运行c程序
帖子发表于 : 2016-07-22 18:20 

注册: 2015-06-19 21:16
帖子: 41
送出感谢: 26
接收感谢: 0 次
嗯。确实不能用scanf()。。谢谢
不过也可以输入其他字符,只要按两下 ctrl-D就行了


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译