wordcount作业

借鉴的代码及地址:http://www.cnblogs.com/zxr63/p/5304505.html

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
void getWord(FILE *fp,int *num_char,int *num_word){
    char ch;
    do{
        *num_char=*num_char+1;
        ch=fgetc(fp);
    }while((ch>=‘a‘&&ch<‘z‘)||(ch>=‘A‘&&ch<=‘Z‘)||ch==‘_‘);
    *num_word=*num_word+1;
    fseek(fp,-1,SEEK_CUR);
}

int main(int argc, char* argv[])
{
    FILE *fp;
    char ch;
    int num_word=0,num_line=0,num_char=0,flag;
    fp=fopen("text.txt","a+");
    if(fp==NULL){
        printf("the file open bit");
    }
    while(!feof(fp)){
        ch=fgetc(fp);
        if((ch>=‘a‘&&ch<‘z‘)||(ch>=‘A‘&&ch<=‘Z‘)){
            getWord(fp,&num_char,&num_word);
        }
        else if(ch==‘\n‘){
            num_line++;
        }
        else if(ch==‘\0‘||ch==‘\t‘){
            flag=1;
        }
        else
            num_char+=1;
    }
    fclose(fp);
    printf("字符数为:%d",num_char);
    printf("\n");
    printf("单词数为:%d",num_word);
    printf("\n");
    printf("行数为:%d",num_line);
    printf("\n");
    return 0;

}

编译时报错: [Error] stdafx.h: No such file or directory

百度到的解释是:默认情况下,VS会生成一个“stdafx.h”头文件,用来包含C、C++、Windows头文件,或者其他一些不经常变化的头文件,以加快编译速度。

于是删去#include "stdafx.h" 之后就没有报错

代码

#include "stdio.h"
#include "stdlib.h"
void getWord(FILE *fp,int *num_char,int *num_word){
    char ch;
    do{
        *num_char=*num_char+1;
        ch=fgetc(fp);
    }while((ch>=‘a‘&&ch<‘z‘)||(ch>=‘A‘&&ch<=‘Z‘)||ch==‘_‘);
    *num_word=*num_word+1;
    fseek(fp,-1,SEEK_CUR);
}

int main(int argc, char* argv[])
{
    FILE *fp;
    char ch;
    int num_word=0,num_line=0,num_char=0,flag;
    fp=fopen("text.txt","a+");
    if(fp==NULL){
        printf("the file open bit");
    }
    while(!feof(fp)){
        ch=fgetc(fp);
        if((ch>=‘a‘&&ch<‘z‘)||(ch>=‘A‘&&ch<=‘Z‘)){
            getWord(fp,&num_char,&num_word);
        }
        else if(ch==‘\n‘){
            num_line++;
        }
        else if(ch==‘\0‘||ch==‘\t‘){
            flag=1;
        }
        else
            num_char+=1;
    }
    fclose(fp);
    printf("字符数为:%d",num_char);
    printf("\n");
    printf("单词数为:%d",num_word);
    printf("\n");
    printf("行数为:%d",num_line);
    printf("\n");
    return 0;

}
时间: 2024-08-05 19:24:55

wordcount作业的相关文章

Hadoop Streaming 编程

1.概述 Hadoop Streaming是Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或者脚本文件作为Mapper和Reducer,例如: 采用shell脚本语言中的一些命令作为mapper和reducer(cat作为mapper,wc作为reducer) $HADOOP_HOME/bin/hadoop  jar $HADOOP_HOME/contrib/streaming/hadoop-*-streaming.jar \ -input myInputDirs \ -outpu

Actor模型[转]

原文链接:http://blog.jeoygin.org/archives/477 Actor这个模型由Carl Hewitt在1973年提出,Gul Agha在1986年发表技术报告“Actors: A Model of Concurrent Computation in Distributed Systems”,至今已有不少年头了.在计算机科学中,它是一个并行计算的数学模型,最初为由大量独立的微处理器组成的高并行计算机所开发,Actor模型的理念非常简单:天下万物皆为Actor. Actor

MapReduce调度与执行原理系列文章

转自:http://blog.csdn.net/jaytalent?viewmode=contents 一.MapReduce调度与执行原理之作业提交 二.MapReduce调度与执行原理之作业初始化 三.MapReduce调度与执行原理之任务调度 四.MapReduce调度与执行原理之任务调度(续) 前言:本文旨在理清在Hadoop中一个MapReduce作业(Job)在提交到框架后的整个生命周期过程,权作总结和日后参考,如有问题,请不吝赐教.本文不涉及Hadoop的架构设计,如有兴趣请参考相

MapReduce源码分析之JobSubmitter(一)

JobSubmitter,顾名思义,它是MapReduce中作业提交者,而实际上JobSubmitter除了构造方法外,对外提供的唯一一个非private成员变量或方法就是submitJobInternal()方法,它是提交Job的内部方法,实现了提交Job的所有业务逻辑.本文,我们将深入研究MapReduce中用于提交Job的组件JobSubmitter. 首先,我们先看下JobSubmitter的类成员变量,如下: // 文件系统FileSystem实例 private FileSystem

MapReduce实现TopK的示例

由于开始学习MapReduce编程已经有一段时间了,作为一个从编程中寻找自信和乐趣以及热爱编程的孩子来讲,手开始变得很“痒”了,很想小试一下身手.于是自己编写了TopK的代码.TopK的意思就是从原文件中找出词频排名前K的所有单词.首先分析该问题,从中我们可以得到启发:要想知道词频排名前K的所有单词,那么是不是要对所有的单词进行词频的统计啊?于是我们就联想到了一个比较经典的例子:WordCount的例子.是的,没错.就是它,统计原文件中每个单词的个数就靠它. 但是,我们词频统计出来了,接下来需要

Tachyon在Spark中的作用(Tachyon: Reliable, Memory Speed Storage for Cluster Computing Frameworks 论文阅读翻译)

摘要: Tachyon是一种分布式文件系统,能够借助集群计算框架使得数据以内存的速度进行共享.当今的缓存技术优化了read过程,可是,write过程由于须要容错机制,就须要通过网络或者是磁盘进行复制操作.Tachyon通过将"血统"技术引入到存储层进而消除了这个瓶颈.创建一个长期的以"血统机制"为基础的存储系统的关键挑战是失败情况发生的时候及时地进行数据恢复.Tachyon通过引入一种检查点的算法来解决问题,这样的方法保证了恢复过程的有限开销以及通过资源调度器下进行

MapReduce源代码分析之JobSubmitter(一)

JobSubmitter.顾名思义,它是MapReduce中作业提交者,而实际上JobSubmitter除了构造方法外.对外提供的唯一一个非private成员变量或方法就是submitJobInternal()方法,它是提交Job的内部方法,实现了提交Job的全部业务逻辑. 本文,我们将深入研究MapReduce中用于提交Job的组件JobSubmitter. 首先,我们先看下JobSubmitter的类成员变量.例如以下: // 文件系统FileSystem实例 private FileSys

大数据Hadoop Streaming编程实战之C++、Php、Python

Streaming框架允许任何程序语言实现的程序在HadoopMapReduce中使用,方便已有程序向Hadoop平台移植.因此可以说对于hadoop的扩展性意义重大.接下来我们分别使用C++.Php.Python语言实现HadoopWordCount. 实战一:C++语言实现Wordcount 代码实现: 1)C++语言实现WordCount中的Mapper,文件命名为mapper.cpp,以下是详细代码 #include #include #include usingnamespacestd

Spark on K8S环境部署细节

Spark on K8S环境部署细节 sparkk8s time: 2020-1-3 Spark on K8S环境部署细节 Spark operator安装 准备kubectl客户端和Helm客户端 安装spark operator Spark wordcount 读写OSS 准备oss依赖的jar包 准备core-site.xml 打包支持读写oss的镜像 下载spark安装包解压 打包发布镜像 准备wordcount作业 1. spark submit 提交 2. spark operato