小编ann*_*nno的帖子

fwrite"<?xml version"上的chokes

当字符串<?xml version通过fwrite写入文件时,后续的写入操作变慢.

这段代码:

#include <cstdio>
#include <ctime>
#include <iostream>

int main()
{
    const long index(15000000); 

    clock_t start_time(clock());
    FILE*  file_stream1 = fopen("test1.txt","wb");
    fwrite("<?xml version",1,13,file_stream1);
    for(auto i = 1;i < index ;++i)
        fwrite("only 6",1,6,file_stream1);
    fclose(file_stream1);

    std::cout << "\nOperation 1 took : " 
        << static_cast<double>(clock() - start_time)/CLOCKS_PER_SEC 
        << " seconds.";


    start_time = clock();
    FILE*  file_stream2 = fopen("test2.txt","wb");
    fwrite("<?xml versioX",1,13,file_stream2);
    for(auto i = 1;i < index ;++i)
        fwrite("only 6",1,6,file_stream2);
    fclose(file_stream2);

    std::cout << "\nOperation 2 took : " 
        << static_cast<double>(clock() - start_time)/CLOCKS_PER_SEC 
        << …
Run Code Online (Sandbox Code Playgroud)

c c++ xml fwrite visual-c++

19
推荐指数
1
解决办法
1818
查看次数

高级形式逻辑/自动机理论教科书

我知道这是一个数学/形式语言/自动机/计算机科学问题,而不是一个编程问题,但我希望我能在关于命题和谓词演算之外的形式逻辑上获得一些可理解的教科书(不是难以理解的专着)的建议.我对monadic二阶逻辑BüchiAutomata特别感兴趣.

目前,我只发现 了Bakhadyr Khoussainov,Anil Nerode的Automata理论及其应用.自动机,逻辑和无限游戏作者:ErichGrädel,Thomas Wilke(编辑).和传播系统的正式模型:语言,自动机和 Monadic 二阶逻辑 Benedikt Bollig ......超越我的脑海.

math logic computer-science automata

13
推荐指数
2
解决办法
2632
查看次数

使用preg_replace时如何增加替换字符串中的计数?

我有这个代码:

$count = 0;    
preg_replace('/test/', 'test'. $count, $content,-1,$count);
Run Code Online (Sandbox Code Playgroud)

对于每次替换,我获得test0.

我想得到test0,test1,test2等.

php regex string preg-replace

10
推荐指数
2
解决办法
9840
查看次数

C++ 0x中char和Unicode的签名

从C++ 0x工作草案中,用于处理Unicode 的新char类型(char16_tchar32_t)将是无符号的(uint_least16_tuint_least32_t将是基础类型).

但据我所知(也许不是很远),没有定义类型char8_t(基于uint_least8_t).为什么?

当你看到为UTF-8字符串文字引入一个新的u8编码前缀时,它会更加令人困惑......基于老朋友(sign/unsigned)char.为什么?

更新:有一个添加新类型的建议:char8_t

char8_t:UTF-8字符和字符串的类型(修订版1) http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r1.html

c++ unicode utf-8 char c++11

10
推荐指数
1
解决办法
1325
查看次数

如何在Rich Edit控件(Win32/C)中更改下划线颜色

我正在寻找一种方法在Rich Edit控件中制作红色波浪形下划线(我使用的是带有Msftedit.dll的4.1版本).我可以使用以下代码生成波浪形下划线:

CHARFORMAT2 format;
format.cbSize = sizeof(format);
format.dwMask = CFM_UNDERLINETYPE;
format.bUnderlineType = CFU_UNDERLINEWAVE;
SendMessage(hWndEdit,EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&format);
Run Code Online (Sandbox Code Playgroud)

MSDN文档未指定如何更改下划线的颜色,仅指定文本(带下划线)和文本背景.我发现一些代码表示使用低位半字节用于下划线类型(CFU_UNDERLINEWAVE)而上层用于颜色.所以我试过了:

format.bUnderlineType = CFU_UNDERLINEWAVE | 0x50;
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

UPDATE

我用3.0版本(Riched20.dll)测试了这段代码,它正在运行.所以问题在于4.1.该功能是否已移除或移至其他位置?

它也不适用于版本6(office 2007使用的dll).

c winapi spell-checking richedit

7
推荐指数
2
解决办法
2540
查看次数

如何将包含空格的选项传递给LaTeX/XeLaTeX中的包

当我声明一个包含空格的选项时,LaTeX/XeLaTeX会吃它.

在主.tex中,我有:

\usepackage[test font]{test}
Run Code Online (Sandbox Code Playgroud)

在我的.sty文件中,我有:

\DeclareOption*{\newfontfamily\testfont[Scale=1]{\CurrentOption}}
\ProcessOptions
Run Code Online (Sandbox Code Playgroud)

但是Tex引擎传递给包testfont选项而不是测试字体.

所以问题是如何将包含空格的选项传递给包.

latex tex xelatex

6
推荐指数
2
解决办法
689
查看次数

如何在发送EM_SETCUEBANNER消息时更改文本提示的颜色?

发送EM_SETCUEBANNER消息时,编辑控件中会出现灰色文本提示.如何在Win32/C中更改文本提示的颜色?

c c++ winapi

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

如何在使用CB_SETCURSEL时发送CBN_SELCHANGE消息?

使用CB_SETCURSEL消息时,不会发送CBN_SELCHANGE消息.

如何通知控件选择已更改?

PS

我在Sexchange网站上发现了一个非常丑陋的黑客:

SendMessage( hwnd, 0x014F/*CB_SHOWDROPDOWN*/, 1, 0 );
SendMessage( hwnd, 0x014E/*CB_SETCURSEL*/, ItemIndex, 0 );
SendMessage( hwnd, 0x0201/*WM_LBUTTONDOWN*/, 0, -1 );
SendMessage( hwnd, 0x0202/*WM_LBUTTONUP*/, 0, -1 );
Run Code Online (Sandbox Code Playgroud)

现在会做...不是真的.

PS2

为了解决我的问题,我会在评论中遵循Ken的建议.

c++ winapi controls combobox message

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

排序列表视图(Win32/C++)

我正在尝试在用户单击列标题时对列表视图进行排序.

我正在捕捉LVN_COLUMNCLICK通知,如下所示:

  case LVN_COLUMNCLICK:
  {
     NMLISTVIEW*    pListView   = (NMLISTVIEW*)lParam;
     BOOL test = ListView_SortItems ( m_hDuplicateObjectsList, ListViewCompareProc, pListView->iSubItem );
     break;
  }
Run Code Online (Sandbox Code Playgroud)

然而它似乎失败了.我的测试变量为FALSE,我的ListViewCompareProc永远不会被命中(当我试图点击它内部的调试点时,它有一个简单的返回1).

有什么东西我缺少排序列表视图?

c++ winapi listview

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

stringstream和french locale(French_France.1252)

std::stringstream stream_french;
stream_french.imbue(std::locale("")); // French_France.1252
stream_french << 1000;
std::string value_french = stream_french.str();
Run Code Online (Sandbox Code Playgroud)

此代码将1000转换为字符串"1 000",但value_french [1]的值为-96而不是32,为什么会这样?

value_french[0] = 49
value_french[1] = -96 
value_french[2] = 48
value_french[3] = 48 
value_french[3] = 48
Run Code Online (Sandbox Code Playgroud)

如果我做

stream_french << "1 000";
Run Code Online (Sandbox Code Playgroud)

value_french [1]的值是32.该错误似乎与char的signedess有关,但为什么在进行转换时它只影响空格?

c++ locale stringstream internationalization

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

有关C++模板的问题

我使用了一个关于模板的测试程序的简单类,这就是我所做的:

template <typename T>
class test
{
public:
    test<T>::test();
    T out();
};

template <typename T>
test<T>::test()
{
}

T test<T>::out()
{
}

int main()
{
    //test<int> t;
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试编译它时说'T':未声明的标识符使用类模板需要模板参数列表,指向同一行,我已经实现了方法out().任何人都可以解释问题是什么?我正在使用visual studio 2008.

c++ templates

0
推荐指数
1
解决办法
125
查看次数