Problem1114--统计输入的字符数

1114: 统计输入的字符数

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 7  Solved: 6
[Submit] [Status] [Web Board] [Creator:]

Description

统计标准输入中所有的字符总数。

算法如下:

计数器清零;

当读入的字符不是文件结束符

     计数器递增;

输出计数器的结果;

示例中,第一行的字符有5个字符,包括一个回车符。

第二行有5个字符,包括一个回车符;

第三行有10个字符,包括一个回车符;

最后是文件结束符(EOF),不计入字符总数中。

总计共20个字符

#include <stdio.h>
/* 统计输入的字符数*/
 
int main(int argc, char *argv[])
{
	int nc;
 
	nc = 0;
	while (getchar() != EOF)
		++nc;
 
	printf("%d\n", nc);
 
	return 0;
}

Input

这道题的运行方式有几种:

1) 你以前最常用的,在C-Free中 F5,编译并运行,你依次输入


Find
Your
Greatness

然后输入 Ctrl+Z。

Ctrl+Z表示你的输入结束了,也就是文件结束符 EOF (End Of File)

2) 就像给Word文件保存为后缀名为 .doc 文件一样,源程序也可以保存,后缀名为 .c

请在C盘上创建一个目录,名为code,用来保存你今天编写的C语言程序。

这个例子中,文件名建议保存为 nc.c  (nc的意思是 the number of characters)。将文件保存到 c:\code

在Windows XP中,选择【开始】->【运行】,在弹出的对话框中输入 cmd,然后按 Enter 键,会出现如下信息:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>

输入以下命令  

cd c:\code        进入目录 c:\code

dir                    查看当前目录下的所有文件

看看是否存在 nc.exe 。如果不存在,请在C-Free中执行【构建】命令。

输入

nc.exe  (或者 j.exe)

然后再输入 

Find
Your
Greatness

然后输入 Ctrl+Z。

3)  创建一个文本文件,名为 nc.txt , 

这个文件的内容就是 

Find
Your
Greatness

现在在命令行中输入

nc.exe < nc.txt

发生了什么?

nc.exe < nc.txt > nc.out.txt

又发生了什么?

Output

 小结:

我们把从键盘的输入称为标准输入 STDIN (Standard IN),printf 语句的输出是标准输出 STDOUT (Standard OUT),也就是显示器。

当你把你的程序提交给【SISO超级评测系统】时,超级系统会敲键盘吗?然后等你的程序运行结束之后,用眼睛看着屏幕,对照手中的标准答案吗?

当然不会了。 那是怎么来做的呢?

【超级系统】将你提交的程序进行编译,得到可执行文件,例如这个程序在Windows系统上就是 nc.exe,然后将事先准备好的数据放在一个文件中,比如 nc.txt,通过输入重定向命令 < ,把nc.txt 中的内容作为标准输入提供给你的程序;并通过输出重定向命令 > ,把原来输出到显示器窗口的内容保存在文件 nc.out.txt

通过比较你的程序输出的 nc.out.txt 和【超级系统】预先准备好的文件,【超级系统】就知道你的程序是否正确了。

Sample Input

Find
Your
Greatness

Sample Output

20

HINT

《C语言程序设计》第2版新版, 第17页,字符计数

Source/Category