我是编程的新手,谢谢你对我的支持。 我需要帮助解决我面临的问题,我需要从excel文件中读取字符串(我使用着名的libxl.h库),将其存储在内存中,然后重新排列(使用一些逻辑)并发送它出了一个新的excel文件。
下面是我的代码。
#include <iostream>
#include <windows.h>
#include <conio.h>
#include "libxl.h"
using namespace libxl;
const wchar_t* s1;
const wchar_t* r64ms[64]; //I intend to create an array of 64 inputs
int main()
{
Book* book2 = xlCreateBook();
if(book2)
{
if(book2->load(L"..\\xxxx.xls"))
{
Sheet* sheetms = getSheetByName(book2, L"Sheet1");
if(sheetms)
{
for (int i=0; i<= 10; i+=1)
{ s1 = sheetms->readStr(i, 1);
r64ms[i]=s1;
std::wcout << r64ms[i]<< std::endl << std::endl;
}
}
}
}
Book* bookout = xlCreateBook();
if(bookout)
{
Sheet* mssheet_out = bookout->addSheet(L"Sheet1");
if(mssheet_out)
{
for (int i=0; i<=64; i++)
{
mssheet_out->writeStr(i, 1, r64ms[i]);
//even if i only have 10 inputs, I guess it doesn't matter//
//and will only send out 10 //
}
}
}
return 0;
}
我在运行程序时遇到的错误是“ExtractTS.exe中0x0fb147af(msvcr100d.dll)的未处理异常:0xC0000005:访问冲突读取位置0x00000000。” 并且指针将我发送到此行(请参阅下面的注释行“此行”):
size_t __cdecl wcslen (
const wchar_t * wcs
)
{
const wchar_t *eos = wcs;
while( *eos++ ) ; // <<<< This line//
return( (size_t)(eos - wcs - 1) );
}
无论我尝试使用'std :: wcout'打印出来,或者我尝试将writeStr写入excel文件,程序会在那一刻停止并给我这个错误。
有人可以帮助我吗? 我怀疑这是我在const wchar_t *上创建数组的方式的错误。 我试图在线搜索,找不到类似的问题/解决方案。
非常感谢你对我的耐心!