linux上怎么用键盘输入EOF??(ctrl-D和ctrl-Z都不行呀)(顺便再问一下怎么通过双击来运行c程序)

C、C++和Java语言
回复
hanis_ghost
帖子: 41
注册时间: 2015-06-19 21:16
送出感谢: 25 次
接收感谢: 0

linux上怎么用键盘输入EOF??(ctrl-D和ctrl-Z都不行呀)(顺便再问一下怎么通过双击来运行c程序)

#1

帖子 hanis_ghost » 2016-07-21 19:31

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 次。
头像
astolia
论坛版主
帖子: 3282
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 550 次

Re: linux上怎么用键盘输入EOF??(ctrl-D和ctrl-Z都不行呀)

#2

帖子 astolia » 2016-07-21 22:13

ctrl+d就可以,但不能用scanf来获取。不信的话把scanf改成c=getchar(),并在运行程序后只输入ctrl+d。
如果输入其他字符就成了死循环所以再按ctrl+d就没效果了。
这些用户感谢了作者 astolia 于这个帖子:
hanis_ghost (2016-07-22 13:34)
评价: 3.7%
hanis_ghost
帖子: 41
注册时间: 2015-06-19 21:16
送出感谢: 25 次
接收感谢: 0

Re: linux上怎么用键盘输入EOF??(ctrl-D和ctrl-Z都不行呀)(顺便再问一下怎么通过双击来运行c程序

#3

帖子 hanis_ghost » 2016-07-22 18:20

嗯。确实不能用scanf()。。谢谢
不过也可以输入其他字符,只要按两下 ctrl-D就行了
回复

回到 “C/C++/Java”