Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用_tcstok时的访问冲突

使用_tcstok时的访问冲突
EN

Stack Overflow用户
提问于 2011-07-12 16:02:13
回答 1查看 726关注 0票数 0

我正在尝试使用_tcstok对文件中的行进行标记。我可以将行标记一次,但是当我第二次尝试标记它时,我得到了访问冲突。我觉得这实际上并不是在访问这些值,而是与位置有关。不过,我不确定还能怎么做。

谢谢,

戴夫

附注:我使用了TCHAR和_tcstok,因为这个文件是UTF-8。

这是我得到的错误:

Testing.exe: 0xC0000005中0x63e866b4 (msvcr90d.dll)处的第一次机会异常:访问冲突读取位置0x0000006c。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vector<TCHAR> TabDelimitedSource::getNext() {
// Returns the next document (a given cell) from the file(s)
TCHAR row[256]; // Return NULL if no more documents/rows
vector<TCHAR> document;

try{
    //Read each line in the file, corresponding to and individual document
    buff_reader->getline(row,10000);
    }
catch (ifstream::failure e){
        ; // Ignore and fall through
    }

if (_tcslen(row)>0){
    this->current_row += 1;
    vector<TCHAR> cells;
      //Separate the line on tabs (id 'tab' document title 'tab' document body)
     TCHAR *  pch;
     pch = _tcstok(row,"\t");
     while (pch != NULL){
         cells.push_back(*pch);
         pch = _tcstok(NULL, "\t");
     }

    // Split the cell into individual words using the lucene analyzer
    try{
      //Separate the body by spaces
        TCHAR original_document ;
        original_document = (cells[column_holding_doc]);
        try{
            TCHAR * pc;
            pc = _tcstok((char*)original_document," ");
             while (pch != NULL){
                 document.push_back(*pc);
                pc = _tcstok(NULL, "\t");
             }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-12 16:27:57

首先,您的代码是C字符串操作和C++容器的混合。这只会把你挖进洞里。理想情况下,您应该将该行标记为std::vector<std::wstring>

此外,您对TCHAR和UTF-8也很困惑。TCHAR是一种根据编译时间标志在8到16位之间“浮动”的字符类型。UTF-8文件使用一个到四个字节来表示每个字符。因此,您可能希望将文本作为std::wstring对象保存,但需要显式地将UTF-8转换为wstring。

但是,如果你只是想让任何东西工作,专注于你的标记化。您需要存储每个令牌的起始地址(作为TCHAR*),但是您的向量是TCHARs的向量。当您尝试使用令牌数据时,您是在将TCHAR转换为TCHAR*指针,从而导致访问冲突,这并不令人意外。您提供的AV地址是0x0000006c,这是字符l的ASCII码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  vector<TCHAR*> cells;
  ...
  cells.push_back(pch);

..。然后..。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    TCHAR *original_document = cells[column_holding_doc];
    TCHAR *pc = _tcstok(original_document," ");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6667326

复制
相关文章
Java中解析XML文件
树结构,有助于更好地理解、掌握,代码易于编写,在解析过程中树结构是保存在内存中,方便修改
头发还在
2023/10/16
2610
xml的解析
   XmlDocument doc=new XmlDocument();    StringReader sr=new StringReader(textBox1.Text);    XmlTextReader rd=new XmlTextReader(sr);    while(rd.Read())    {     //textBox2.Text +=rd.NodeType.ToString()+"\r\n";     if(rd.NodeType.ToString()=="Element")    
用户1075292
2018/01/23
3.6K0
XML的解析
昨天说了JSON解析,今天来看一下XML解析。在开发中需要对xml解析也是很常见的,跟JSON一样,大同小异。
一头小山猪
2020/04/10
3.1K0
xml解析---Java解析xml文件
dom4j解析xml文件、之前用下面的方法,90M的xml,500万行,解析完插入数据库,单线程,不到1小时搞定,而只是解析数据,只用了7秒。
IT云清
2019/01/22
7.1K0
如何在PHP中解析XML
XML解析器是一个程序,它可以将XML文档或代码转换为XML文档对象模型(DOM)对象。
Lemon黄
2020/07/07
3.6K0
xml解析---Java解析xml文件 /江格式解析
本文源于:http://www.cnblogs.com/Qian123/p/5231303.html点击这里
IT云清
2019/01/22
4K0
XML解析
XML解析 什么是DOM 使用DOM的解析步骤 什么是dom4j 使用dom4的解析步骤 什么是DOM DOM全称Document Object Model文档对象模型,将文档中的元素或者其他节点转换成一个一个的对象使用java代码操作XML或者js代码操作HTML DOM解析的特点 在加载的时候一次性把整个的XML文档载入内存,在内存中形成一颗树(Document对象) 之后使用代码去操作Document对象,其实是操作的是内存当中的DOM树,和本地磁盘中的XML文件没有直接关系 由于操作的是内存
木瓜煲鸡脚
2019/07/22
3.1K0
XML解析
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/47010227
用户1451823
2018/09/13
2.5K0
XML解析
XML解析方式分为两种:DOM方式和SAX方式 DOM:Document Object Model,文档对象模型。这种方式是W3C推荐的处理XML的一种方式。 SAX:Simple API for XML。这种方式不是官方标准,属于开源社区XML-DEV,几乎所有的XML解析器都支持它。
星哥玩云
2022/09/14
5.6K0
XML解析
xml 解析技术介绍和解析xml文件
xml 可扩展的标记语言。不管是 html 文件还是 xml 文件它们都是标记型文档,都可以使用 w3c 组织制定的 dom 技术来解析。
一个风轻云淡
2022/11/15
3.7K0
xml 解析技术介绍和解析xml文件
【Python学习】保姆级教学python中的解析和解析XML
我们经常需要解析用不同语言编写的数据。Python 提供了许多库来解析或拆分用其他语言编写的数据。在此 Python XML 解析器教程中,您将学习如何使用 Python 解析 XML。
玖柒的小窝
2021/12/10
4K0
【Python学习】保姆级教学python中的解析和解析XML
【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )
创建 XmlParser 解析器 , 传入 Xml 文件对应的 File 对象 ;
韩曙亮
2023/03/30
7.2K0
【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )
java xml解析框架_JAVA解析xml的五种方式对比
本篇文章主要对比Java即系xml的五种方式,这五种方式各有利弊,大家可以看情况采用哪一种。
全栈程序员站长
2022/09/05
1.7K0
python 解析XML
a.name #就是上面的 "id"   a.value #属性的值   访问元素属性
艳艳代码杂货店
2021/11/01
3.5K0
golang的xml、json解析
xml golang的xml处理主要应用Unmarshal、Marshal方法实现,解析一个xml到struct如下,首先是xml文件: <?xml version="1.0" encoding="u
用户1141560
2017/12/26
3K0
golang的xml、json解析
Java解析XML的实践
通过这段代码,重点是需要理解他的解析过程,就可以根据实际用到的XML格式,写出对应的解析逻辑。
bisal
2023/02/16
1K0
Python中XML数据结构详细解析
物联网应用过程中,设备采集数据后,一般通过终端采集器网关转发或web server服务打包成xml或json数据格式传输到数据中心或云平台,最后经数据解析、数据分析及数据可视化。开发环节涉及末端设备数据采集、数据转发、数据解析等流程。
用户8949263
2022/04/08
2.2K0
Python中XML数据结构详细解析
Java中四种XML解析技术
在平时工作中,难免会遇到把 XML 作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML 这块来测试,因为遍历 XML 是工作中使用最多的(至少我认为)。 
Hongten
2018/09/13
7190
DrugBank XML解析
官方网站: https://www.drugbank.ca 最近好像很多人在关注这个网站,就暂时开一个 官网就是这个样子
DrugScience
2021/02/04
9K6
DrugBank XML解析
python 解析xml
from urllib.request import urlopen from xml.etree.ElementTree import parse
用户5760343
2019/10/21
3.4K0

相似问题

表单提交时Django写入数据库

20

Django不从表单(不是admin)写入数据库

10

将表单数据写入SQL数据库

216

将表单数据写入SQLLite数据库

121

将表单API值写入数据库

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文