计算标准输入中的字数和行数的 C 程序

标签 c

我是 C 编程新手,目前正在尝试自学如何创建一个 C 程序,该程序可以对输入流中的单词和行进行计数,并将两个总计打印到标准输出。

我实际上想做的是让程序计算行数并根据我觉得不对的单词的定义来计算单词数。

我希望这些单词排除空格、制表符、换行符、连字符或冒号。同时让程序以小数形式输出结果(单词和行)。

#include<stdio.h>

int main()
{
    int iochar;
    int words;
    int lines;

    printf("Enter something here:\n\n");

    while ((iochar = getchar ()) !=EOF)
    {
        if((iochar == ' ') || (iochar == '\t') || (iochar == '\n'))

        putchar(iochar);
    }

    return 0;
}

我完全不喜欢这个项目吗?

最佳答案

如果您的问题是如何修复编译错误,那很简单。在末尾添加一个右大括号。

但是当且仅当用户键入空格、制表符或换行符时,您的程序仍将仅执行一次循环,并且仅打印一个字符。无论用户输入什么,程序都会终止。我怀疑这就是你想要的。

我怀疑这就是您的意图:

while ((iochar = getchar ()) !=EOF)
{
    if((iochar == ' ') || (iochar == '\t') || (iochar == '\n'))
    {
        putchar(iochar);
    }
}
return 0;

关于计算标准输入中的字数和行数的 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12591664/

相关文章:

c - 获取数组中每个 int 的 LSB 并将它们组合起来创建一个字节

c - 如何处理函数声明中 C 参数名称(不带类型)的错误?

Char* 字符数组,但 int* 不是整数数组?

c - 如何知道文件在linux中被修改

c - 使用相同的代码,我从 ATMEGA16A 的两个端口得到两个不同的答案

c - 在C中扫描并打印变量数据类型 "double"

c - 如何在 Visual Studio 2013 中将 stdint 类型与 _tprintf 一起使用?

c - 在 C 的单个语句中分配和比较

c - 应用于位字段的 typeof/__auto_type 的 GNU C 替换/解决方法

c - 在 Linux 中使用 makefile 将源文件更新到不同的文件夹