小编son*_*phi的帖子

在C++中将文件内容读入字符串

可能重复:
在c ++中将文件粘贴到std :: string的最佳方法是什么?

在像Perl这样的脚本语言中,可以一次将文件读入变量.

    open(FILEHANDLE,$file);
    $content=<FILEHANDLE>;
Run Code Online (Sandbox Code Playgroud)

在C++中最有效的方法是什么?

c++ string file-io

76
推荐指数
4
解决办法
17万
查看次数

ContentEditable DIV - 禁用拖放

是否可以在contentEditable属性设置为true的元素上禁用拖放功能.

我有以下HTML页面.

<!DOCTYPE html>
<html><meta charset="utf-8"><head><title>ContentEditable</title></head>
<body>
    <div contenteditable="true">This is editable content</div>
    <span>This is not editable content</span>
    <img src="bookmark.png" title="Click to do foo" onclick= "foo()">
    </span>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我面临的主要问题是可以将图像拖放到DIV中并将其复制(与标题和点击处理程序一起)

javascript html5 contenteditable

15
推荐指数
3
解决办法
1万
查看次数

确定当前文本选择包含哪些DOM元素

我希望能够找出用户在浏览器中当前选择的文本中存在哪些DOM元素.

document.getSelection()会为我们提供当前选中的文本.但是,我们如何确定此文本选择中包含哪些DOM元素?

javascript browser dom

8
推荐指数
1
解决办法
2608
查看次数

如何从C++中的文本文件中读取长行?

我使用以下代码从文本文件中读取行.处理行大于限制SIZE_MAX_LINE的情况的最佳方法是什么?

void TextFileReader::read(string inFilename)
{
    ifstream xInFile(inFilename.c_str());
    if(!xInFile){
        return;
    }

    char acLine[SIZE_MAX_LINE + 1];

    while(xInFile){
        xInFile.getline(acLine, SIZE_MAX_LINE);
        if(xInFile){
            m_sStream.append(acLine); //Appending read line to string
        }
    }

    xInFile.close();
}
Run Code Online (Sandbox Code Playgroud)

c++

8
推荐指数
2
解决办法
5910
查看次数

C++地图性能 - Linux(30秒)vs Windows(30分钟)!

我需要处理一个文件列表.不应对同一文件重复处理操作.我用的代码是 -

using namespace std;

vector<File*> gInputFileList; //Can contain duplicates, File has member sFilename
map<string, File*> gProcessedFileList; //Using map to avoid linear search costs

void processFile(File* pFile)
{
    File* pProcessedFile = gProcessedFileList[pFile->sFilename];
    if(pProcessedFile != NULL)
        return; //Already processed

    foo(pFile); //foo() is the action to do for each file
    gProcessedFileList[pFile->sFilename] = pFile;
}

void main()
{
    size_t n= gInputFileList.size(); //Using array syntax (iterator syntax also gives identical performance)
    for(size_t i=0; i<n; i++){
        processFile(gInputFileList[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

代码工作正常,但......

我的问题是,当输入大小为1000时,在Windows/Visual Studio 2008 Express上需要30分钟 - …

c++ performance stl

6
推荐指数
1
解决办法
2029
查看次数

撤消实现 - DOM操作

是否有可用于在JavaScript中实现DOM元素操作的撤消/重做功能的库?

我正在编写一个prototype.js app(memonaut),它围绕DOM元素移动,可以编辑和删除这些元素.有事件处理程序和与操作的每个元素相关联的其他对象.

不确定我是否需要为此推出自己的Command模式实现.当然,必须有可用的东西吗?如果没有,建议和指针将是一个很大的帮助.

javascript dom

5
推荐指数
1
解决办法
749
查看次数

线程安全get(访问器方法)

我目前正在使用以下代码进行变量的线程安全访问.

int gnVariable;

void getVariableValue(int *pnValue)
{
    acquireLock(); //Acquires the protection mechanism
    *pnValue = gnVariable;
    releaseLock(); //Releasing the protection mechanism
}
Run Code Online (Sandbox Code Playgroud)

我想将我的API签名更改为更加用户友好

int getVariableValue(void);
Run Code Online (Sandbox Code Playgroud)

我应该如何重写函数 - 这样API的用户不必担心锁定/解锁细节?

c c++ multithreading

5
推荐指数
2
解决办法
1232
查看次数

将UTF8文本写入文件

我使用以下函数将文本保存到文件(在IE-8 w/ActiveX上).

function saveFile(strFullPath, strContent)
{
    var fso = new ActiveXObject( "Scripting.FileSystemObject" );

    var flOutput = fso.CreateTextFile( strFullPath, true ); //true for overwrite
    flOutput.Write( strContent );
    flOutput.Close();
}
Run Code Online (Sandbox Code Playgroud)

如果文本完全是Latin-9,但是当文本甚至包含单个UTF-8编码字符时,代码工作正常,则写入失败.

似乎ActiveX FileSystemObject不支持UTF-8.我首先尝试使用UTF-16编码文本,但结果是乱码.什么是变通方法?

javascript unicode internet-explorer activex internationalization

4
推荐指数
1
解决办法
1万
查看次数

用Cleartool显示当前基线

如何查看当前视图所基于的基线?

我只能找到有关如何查看当前推荐的流基线的信息

cleartool desc -fmt %[rec_bls]CXp stream:myProject_Int@\myProject_pvob
#This gives the currently recommended baseline for the stream
Run Code Online (Sandbox Code Playgroud)

基本上我要做的是更新Build Notes.1.确定最后一个rebase完成的基线2.确定当前建议的3.列出已交付的活动.

我能够找到执行第2步和第3步的信息,但不能找到步骤1.也许我没有使用正确的术语进行搜索...请帮忙.

clearcase cleartool

3
推荐指数
1
解决办法
8720
查看次数

使用C#中的本机DLL参数

我需要在我的C#代码中使用本机dll(WNSMP32.dll)中的以下函数.

SNMPAPI_STATUS SnmpStartupEx( _Out_  smiLPUINT32 nMajorVersion,...); 
//Considering just one for purpose of discussion
Run Code Online (Sandbox Code Playgroud)

为此,我将dllimport声明作为

[DllImport("wsnmp32.dll")]  internal static extern
Status SnmpStartupEx(out IntPtr majorVersion, ...); 
//Considering just one for purpose of discussion
Run Code Online (Sandbox Code Playgroud)

我正在使用该功能

IntPtr majorVersion = Marshal.AllocHGlobal(sizeof(UINT32))

status = SnmpStartupEx(out majorVersion, out minVersion, 
                       out level, out translateMode, out retransmitMode )
Run Code Online (Sandbox Code Playgroud)

在分配内存后,我正在打印IntPtr的值.

<<<DEBUG OUTPUT>>> IntPtr Value = 112235522816
Run Code Online (Sandbox Code Playgroud)

但是在调用之后,我发现IntPtr正在改变!

<<<DEBUG OUTPUT>>> IntPtr after calling SnmpStartupEx
<<<DEBUG OUTPUT>>> IntPtr Value = 111669149698
Run Code Online (Sandbox Code Playgroud)
  1. 我应该在通话前通过Marshal.AllocHGlobal分配内存吗?
  2. 调用后IntPtr的地址是否有效?

c# dllimport

2
推荐指数
1
解决办法
5814
查看次数