*对输入的行和字符进行计数。在计算机中,一行是以一个回车符\n作为行结束标记的,这样在程序中可以通过搜索\n对行进行计数。在UNIX操作系统中,一般有ctrl+d作为文件结束标记,其字符码为-1.当输入ctrl+d时表示文件输入结束,停止计数。 **输出格式要求:"chars=%d, lines=%d\n" C语言
时间: 2023-07-15 09:09:56 浏览: 121
下面是一个简单的 C 语言程序,可以对输入的行和字符进行计数:
```c
#include <stdio.h>
int main()
{
int c, chars = 0, lines = 0;
while ((c = getchar()) != EOF)
{
chars++;
if (c == '\n')
{
lines++;
}
}
printf("chars=%d, lines=%d\n", chars, lines);
return 0;
}
```
在程序中,首先定义了三个变量:`c` 用于读取输入的字符,`chars` 用于计算字符数,`lines` 用于计算行数。
然后使用 `while` 循环读取每个字符,如果读取到的字符不是文件结束标记 `EOF`,则将 `chars` 自增 1,并检查该字符是否是回车符 `\n`,如果是,则将 `lines` 自增 1。
最后,使用 `printf` 函数输出计数结果,其中 `%d` 表示输出整数。
注意,在 Windows 操作系统中,回车符由两个字符组成,即 `\r\n`,因此需要将程序修改为:
```c
#include <stdio.h>
int main()
{
int c, chars = 0, lines = 0;
while ((c = getchar()) != EOF)
{
chars++;
if (c == '\n')
{
lines++;
// 如果前一个字符是回车符,则不计入行数
if (chars > 1 && getchar() == '\r')
{
chars--;
}
}
}
printf("chars=%d, lines=%d\n", chars, lines);
return 0;
}
```
在上面的程序中,如果读取到的是回车符,则再读取一个字符,如果这个字符是换行符,则说明这是一个 Windows 的换行符,需要将字符数减 1。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)