下面是源码:

#pragma warning(disable:4996) 
#include <iostream>
#include <string>

using namespace std;
string key[6] = { "begin", "if", "then", "while", "do", "end" };
//关键字
bool isKey(string str, int &syn) //判断是否为关键字,若是传回相应关键码的种别名

{
    int i;
    for (i = 0; i < 6; i++)
    {
        if (str == key[i])
        {
            syn = i + 1;
            return true;
        }
    }
    return false;
}
bool isLetter(char c) //是否为字母
{
    if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))
        return true;
    else
        return false;
}
bool isDigit(char c) //是否为数字
{
    if (c >= '0' && c <= '9')
        return true;
    else
        return false;
}
void analyse(FILE *fileP)
{
    int n;
    char c;
    string str = "";
    while ((c = fgetc(fileP)) != EOF)
    {
        if (c == ' ' || c == '\n' || c == '\t')
            continue;
        else if (isDigit(c)) //数字
        {
            while (isDigit(c))
            {
                str += c;
                c = fgetc(fileP);
            }
            fseek(fileP, -1, SEEK_CUR);
            cout << "(11, " << str << ")" << endl;
            str = "";
        }
        else if (isLetter(c)) //字母开头的
        {
            while (isDigit(c) || isLetter(c))
            {
                str += c;
                c = fgetc(fileP);
            }
            fseek(fileP, -1, SEEK_CUR);
            if (isKey(str, n))
                cout << "(" << n << ", " << str << ")" << endl; //关键码
            else
                cout << "(10, " << "\'" << str << "\'" << ")" << endl; //标志符
            str = "";
        }
        else //操作符等
        {
            switch (c)
            {
            case '+':
                cout << "(13, +)" << endl;
                break;
            case '-':
                cout << "(14, -)" << endl;
                break;
            case '*':
                cout << "(15, *)" << endl;
                break;
            case '/':
                cout << "(16, /)" << endl;
                break;
            case ':':
            {
                if (c = fgetc(fileP) == '=')
                    cout << "(18, :=)" << endl;
                else
                {
                    cout << "(17, :)" << endl;
                    fseek(fileP, -1, SEEK_CUR);
                }
                break;
            }
            case '<':
            {
                c = fgetc(fileP);
                if (c == '=')
                    cout << "(22, <=)" << endl;
                else if (c == '>')
                    cout << "(21, <>)" << endl;
                else
                {
                    cout << "(20, <)" << endl;
                    fseek(fileP, -1, SEEK_CUR);
                }
                break;
            }
            case '>':
            {
                c = fgetc(fileP);
                if (c == '=')
                    cout << "(24, >=)" << endl;
                else
                {
                    cout << "(23, >)" << endl;
                    fseek(fileP, -1, SEEK_CUR);
                }
                break;
            }
            case '=':
                cout << "(25, =)" << endl;
                break;
            case ';':
                cout << "(26, ;)" << endl;
                break;
            case '(':
                cout << "(27, ()" << endl;
                break;
            case ')':
                cout << "(28, ))" << endl;
                break;
            case '#':
                cout << "(0, #)" << endl;
                break;
            }
        }
    }
}
int main()
{
    FILE *fileP;
    fileP = fopen("test.txt", "r");
    cout << "------词法分析如下------" << endl;
    analyse(fileP);
    return 0;
}

有大佬知道该怎么办吗?程序可以调试没有错误,但是一运行就出错。

0x79BEE906 (ucrtbased.dll) (ConsoleApplication1.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数。相关推荐

  1. 0x0FF0ED76 (ucrtbased.dll) (Project5.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数。 出现了

    void drop(int a)//一个删除deque容器中元素的函数{deque<int>::iterator it;it = kn.begin();kn.erase(it+a);cou ...

  2. VScommunity2019 0x00007FFCCA14B7EC (ucrtbased.dll) (Project1.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误

    0x00007FFCCA14B7EC (ucrtbased.dll) (Project1.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数. 读某一个文件,但是并没 ...

  3. 0x00007FFE81272FE1 (ucrtbased.dll) (Project1.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x0000000000000000 时发

    0x00007FFE81272FE1 (ucrtbased.dll) (Project1.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x0000000000000000 时发 ...

  4. 0x00007FFE9071C408 (ucrtbase.dll) (xxx.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数。

    1.调试VS程序,弹出异常:0x00007FFE9071C408 (ucrtbase.dll) (xxx.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数. 2.在 ...

  5. 0x79B2A261 (ucrtbased.dll) (Project4.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0x00A41023 时发生访问冲突。

    scanf_s("%c %c",&c1,&c2); 在v2019上输入以上代码可能会出现由于0xC0000005: 写入位置 0x00A41023 时发生访问冲突等 ...

  6. 0x0F1AFD76 (libcocos2d.dll) (Plane.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x00000018 时发生访问冲突。

    0x0F1AFD76 (libcocos2d.dll) (Plane.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x00000018 时发生访问冲突. Get data fr ...

  7. (转载)0x0F1AFD76 (libcocos2d.dll) (Plane.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x00000018 时发生访问冲突。

    原文地址:http://blog.csdn.net/u010398774/article/details/23567441 0x0F1AFD76 (libcocos2d.dll) (Plane.exe ...

  8. 已解决 0x0000XXXX (ucrtbase.dll) (XXX.exe 中)处有未经处理的异常: 请求了严重的程序退出。

    已解决!ucrtbase.dll, XXX.exe 中处有未经处理的异常: 请求了严重的程序退出. 问题描述 解决方法 问题描述 最近在编译IFC++工程,发现在运行的时候VS2019弹出了相关错误提 ...

  9. 0x00007FF9BF948828 (Qt5Core.dll) (QtGuiApplication3.exe 中)处有未经处理的异常: 请求了严重的程序退出——解决方案

    这篇文章详细介绍了在使用vs+Qt+Vtk环境下Debug模式会报错,但是在Release模式下没有发生问题.环境的配置主要是参考以下文章详细的VTK VS QT配置 vtk8.2.0 + vs201 ...

最新文章

  1. 《数据虚拟化:商务智能系统的数据架构与管理》一 1.11 数据集成的其他方式...
  2. Nat. Mach. Intel. | IBM RXN: 深度学习在化学反应分类上大放异彩
  3. spring (由Rod Johnson创建的一个开源框架)
  4. python下三角代码分析_空间分析:2-3。用Python生成Delaunay三角形,23Python,德劳内
  5. ASP.NETSpring.NETNHibernate最佳实践(三)——第2章环境准备
  6. md5课程设计java_MD5算法的JAVA实现
  7. [css] 使用css实现悬浮提示文本
  8. python如何输出两列数据_Python-如何将一列分为两列?
  9. QT读取csv文件并且绘制折线图
  10. IDEA配置SpringBoot的springloaded热部署(写方法、属性不用重启)
  11. 逻辑学 —— 复杂问题谬误
  12. 微软 Windows 10 将支持 8 英寸以下 ARM 平板设备
  13. 【系统分析师之路】2020年下系统分析师论文写作真题
  14. 《富爸爸,穷爸爸》这本书有何价值?
  15. 服务器SAS硬盘raid5崩溃lvm丢失的数据恢复过程
  16. Android获取手机序列号
  17. vue3 打印插件 vue-print-nb
  18. Ubuntu 远程控制(使用自带远程工具)
  19. [产品规划]行业公司如何做产品
  20. BZOJ 3698: XWW的难题(有源汇上下界最大流)

热门文章

  1. QT POST方法:以使用腾讯云发送短信为例
  2. 【python爬虫02】使用Scrapy框架爬取拉勾网招聘信息
  3. Python 逢七拍手小游戏
  4. vue 点击表格单元格可编辑
  5. 美团点评前端技术体系的思考与实践》知乎 live 文字稿
  6. 程序猿工作第3年是个坎,你认吗?转型大数据可靠吗?
  7. 字符串里面的html转义字符串,HTML转义字符串
  8. Citrix:一直被模仿,从未被超越。评Liquidware Labs Inc发布适用于View的个性化磁盘产品...
  9. 搜索引擎算法背后那些不为人知的秘密
  10. 机器学习中分箱的作用及好处