深海重苹果 2021-06-26 15:30 采纳率: 100%
浏览 17
已采纳

这里输出不了任何数据,请问是没读取成功txt还是什么问题

Word w[M];//定义单词存储空间
    int K, n = 0, i;//K:单词字符数量;n:当前单词序号;i:遍历已有单词
    char ch;
    fstream fp;
    fp.open("C://Infile.txt",ios::in);
    while (!fp.eof())
    {
        fp >> ch;//获取当前字符
        if (ch == ' ' || ch == 10 || ch == ',' || ch == '.')
        {//遇到空格、回车、逗号、句号则跳过
            continue;
        }
        //逐个读取字母,读到字母以外的字符就停止,记录一个单词
        if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
            K = 0;//单词字符数量
            w[n].count = 1;//频率设为1
            while ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
            {
                if (ch >= 'A' && ch <= 'Z')
                    ch += 32;//大写转换成小写
                w[n].word[K] = ch;//把当前字母存入数组
                K++;
                fp >> ch;
            }
            w[n].word[K] = '\0';//结束标志\0,防止运行出现烫烫烫
            for (i = 0; i < n; i++) //与前面的单词比较
            {
                if (strcmp(w[n].word, w[i].word) == 0)//如果有单词相同
                {
                    w[i].count++;//此单词频率加1
                    break;
                }
            }
            if (n == 0 || i == n)//前面如果没有相同的单词
            {
                //为此单词开辟新单元
                n++;
            }
        }
    }
    fp.close();
    //构造后接方式的单链表
    first = new LNode();
    first->next = NULL;
    LNode* r = first, * s;
    for (int i = 0; i < n; i++) { //r为尾指针
        s = new LNode();
        s->data = w[i];
        s->next = NULL;
        r->next = s;
        r = s;
    }
    r->next = NULL;
    LNode* p = r->next;
    while (p) {
        cout << "单词" << p->data.word << "出现次数为:" << p->data.count << endl;
        p = p->next;
    }
  • 写回答

1条回答 默认 最新

  • 深海重苹果 2021-06-26 15:45
    关注

    解决了,链表定义的遍历指针错误了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况