小编And*_*man的帖子

Regex表达式的数学表达式

我有很多文本行,我必须找到一些行,并更改它们.

我写了这样的正则表达式规则:

^(Position) ([0-9]+)$
Run Code Online (Sandbox Code Playgroud)

例如,我必须找到所有这些行:

位置10
位置11
位置12

现在我必须将数字增加到5.如何通过Regex实现?我试着写这样的正则表达式规则:

$1 {$2+ 5}
Run Code Online (Sandbox Code Playgroud)

我需要得到结果:

位置15
位置16
位置17

但我得到了:

位置{10 +5}
位置{11 + 5}
位置{12 + 5}

.net c# regex

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

如何将"带有副作用的表达"传递给getc?

"UNIX环境中的高级编程,第3版",第151页:

getc和之间的区别fgetcgetc可以实现为宏,而fgetc不能实现为宏.这意味着三件事:

  • 论证getc不应该是带有副作用的表达.
  • 由于fgetc保证是一个功能,我们可以采取其地址.这允许我们将fgetc作为参数的地址传递给另一个函数.
  • 呼叫fgetc可能需要比调用更长的时间getc,因为通常需要更多时间来调用函数.

使用流指针作为参数的函数签名会出现什么"带副作用的表达式"

#include<stdio.h>
int getc(FILE* stream);
int fgetc(FILE* stream);
Run Code Online (Sandbox Code Playgroud)

c getc fgetc

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

为什么我没有得到“PE\0\0”?

从PE规格来看:

\n\n
\n

在位置0x3c,存根具有 PE​​ 签名的文件偏移量。\n 此信息使 Windows 能够正确执行映像文件,\n 即使它具有 MS DOS 存根。该文件偏移量在链接期间被放置在\n位置0x3c

\n\n

2.2. 签名(仅图像)
在 MS DOS 存根之后,在 offset 处指定的文件偏移处0x3c,是一个 4 字节签名,该签名将文件标识为 PE 格式图像文件。此签名为 \xe2\x80\x9cPE\\0\\0\xe2\x80\x9d (\n 字母 \xe2\x80\x9cP\xe2\x80\x9d 和 \xe2\x80\x9cE\xe2\x80\ x9d 后跟两个空字节)。

\n
\n\n

我尝试读取这些字节:

\n\n
using System;\nusing System.IO;\n\nclass Program {\n  const String fileName = @".\\some_application.exe";\n  const Int64 peMarkerPosition = 0x3c;\n\n  static void Main(string[] args) {\n    using (FileStream fs = new FileStream(fileName, FileMode.Open,\n      FileAccess.Read)) {\n      Byte[] marker = new Byte[4];\n      fs.Position = …
Run Code Online (Sandbox Code Playgroud)

.net c# coff portable-executable

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

为什么我不能递增简单constexpr函数的参数?

Visual Studio 2015更新3。

我读了《编程》。Bjarne Stroustrup的《使用C ++的原理和实践》(第二版)。我学习constexpr功能...

有用:

constexpr int get_value(int n) {
    return n + 1;
}
Run Code Online (Sandbox Code Playgroud)

但是我不能编译它(代替第一个变体):

constexpr int get_value(int n) {
    return ++n;
}
Run Code Online (Sandbox Code Playgroud)

我得到错误:

constexpr函数返回的值不是恒定的

n本地的变量get_value函数。即n变量更改不会影响外部代码。

为什么该get_value函数的第二个变体是错误的?

c++ visual-c++ constexpr c++11 c++14

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

为什么它需要默认构造函数而不是直接使用我的工厂方法?

使用Visual Studio 2017我有一个ASP.NET Core MVC应用程序.我注册了工厂的必要方法,因为在模型中,我的每个类的每个实例都只能通过工厂创建:

public void ConfigureServices(IServiceCollection services)
{
    services.AddTransient<ITechnicalTask>(_ =>
        // It returns ITechnicalTask instance
        ModelFactory.Current.CreateTechnicalTaskTemplate(
            "Template Name"));

    // Add framework services.
    services.AddMvc();

}
Run Code Online (Sandbox Code Playgroud)

我的控制器有这样的方法:

[HttpGet]
public IActionResult CreateTemplate() => View();

[HttpPost]
public IActionResult CreateTemplate(ITechnicalTask item)
{    
    repo.Templates.Add(item);
    return View("TemplatesList");
}
Run Code Online (Sandbox Code Playgroud)

这是我的表格:

<form asp-action="CreateTemplate" method="post">
    <div class="form-group">
        <label asp-for="TemplateName">Template name:</label>
        <input class="form-control" asp-for="TemplateName" />
    </div>
    <div class="text-center">
        <button class="btn btn-primary" type="submit">
            Accept
        </button>
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

按下Accept按钮时出现异常:

处理请求时发生未处理的异常.

InvalidOperationException:无法创建类型为"PikProject.RobotIRA.ITechnicalTask​​"的实例.模型绑定的复杂类型不能是抽象或值类型,并且必须具有无参数构造函数.

Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.CreateModel(ModelBindingContext bindingContext)

为什么需要默认构造函数?为什么使用我的工厂方法是不够的?

UPD

我的 …

c# asp.net-core-mvc asp.net-core

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

char&*是什么意思?

这来自Autodesk公司的AutoCAD 2013(ObjectARX SDK)的官方文档:

ObjectARX for AutoCAD 2013:自述文件 - >提示和技巧 - >释放 *字符串作为非常量指针返回:*

当调用返回非常量字符串指针的方法时(例如AcDbSymbolTable::getName(char&* pName)),您应该释放返回的字符串占用的内存.例如:

// The getName() call should be followed by a call to
acutDelString(pLtName);pLtTableRcd->getName(pLtName);
// ... other code
acutDelString(pLtName);
Run Code Online (Sandbox Code Playgroud)

请注意,某些ObjectARX示例文件缺少释放内存的调用,因此它们会出现内存泄漏.在您自己的代码中使用示例时,请确保正确释放内存.

下一个参数类型的含义是什么:

AcDbSymbolTable::getName(char&* pName))
Run Code Online (Sandbox Code Playgroud)

是指针char&吗?凭什么?什么时候使用这样的结构?

谢谢.

c++

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

功能组成从左到右

我正在学习Haskell.一些表达:

replicate 2 . product . map (*3) $ zipWith max [1,2] [4,5]
Run Code Online (Sandbox Code Playgroud)

当我构建它时,我zipWith max [1,2] [4,5]首先写入,然后我按下Home键并写入map (*3) $,然后我Home再次按下键并写入product .,然后我按下Home键并写入replicate 2 ..这种方式对我来说很不方便.

所以我从右到左构建一个表达式,当我读到这个时 - 我也是这样做的.但我习惯从左到右阅读 - 这对我来说更方便.

我可以从左到右做同样的事情:

zipWith max [1,2] [4,5] # map (*3) # product # replicate 2
Run Code Online (Sandbox Code Playgroud)

这个案子我正在写一个从左到右的表达式,因为我习惯了,没有Home按键.

我将#函数定义为:

infixl 0 #
(#) :: a -> (a -> b) -> b
n # f = (f) n
Run Code Online (Sandbox Code Playgroud)

因此,该# …

haskell

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

为什么Git允许切换分支,并且(!!!)在切换后不更新工作树?

适用于Windows 2.5.2的Git.我希望如果索引具有未更改的更改,那么Git将禁用对其他分支的检查.但我看到其他结果.样本脚本:

#!/bin/bash
# script.sh
# Run this script in the Git Bash.
git --version
host="./sandbox"
if [ -d $host ]; then
    rm -r $host
    mkdir $host
    echo \"$host\" directory recreated...   
else
    mkdir $host
    echo $host directory \"$host\" created.
fi
cd $host
git init -q
touch 1.txt 2.txt 3.txt
git add "*"
git commit -qm "Initializing"
git branch
ls
git checkout -qb branch#1
rm 3.txt
echo ABCD >> 1.txt
# git commit -aqm "branch#1_commit#1"
git branch
ls
git checkout -q …
Run Code Online (Sandbox Code Playgroud)

git git-checkout

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

如何等待任务的完成及其继续?

我学习以书本为基础的线程。

我想等待我的任务及其继续进行。但是我在“ BLEEEEEEEEEEEEEEEP ” 之前看到“按任意键退出... ”消息(请查看我的代码注释)。为什么会发生,如何解决?

我知道我可以使用两个任务并将其Task.Wait()用于每个任务,但是如果我需要对延续对象执行相同的操作怎么办?

在此处输入图片说明

using System;
using System.Threading;
using System.Threading.Tasks;

namespace Bushman.Sandbox.Threads {
    class Program {
        static void Main(string[] args) {
            Console.Title = "Threads";

            try {
                // The main work
                Action act1 = () => {
                    for (int i = 0; i < 10; i++) {

                        int id = Thread.CurrentThread
                        .ManagedThreadId;

                        Console.WriteLine(
                            "bleep. Thread Id: {0}",
                            id.ToString());
                    }
                };

                // This operation is to be done when the main 
                // work will …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading task

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

为什么控制器方法的参数是空的Guid?

ASP.NET 核心 MVC 2

客户端代码:

static void Get(Uri uri, DownloadStringCompletedEventHandler callback)
{
    var client = new WebClient();
    client.DownloadStringCompleted += callback;
    // Here uri is http://localhost:61698/Home/Task/aa348338-d367-4635-a5e5-9208c9d0e6a5
    client.DownloadStringAsync(uri);
}
Run Code Online (Sandbox Code Playgroud)

服务器端(控制器的方法):

[HttpGet]
public string Task(Guid guid)
{
    // Here guid is {00000000-0000-0000-0000-000000000000}
    // instead of aa348338-d367-4635-a5e5-9208c9d0e6a5
}
Run Code Online (Sandbox Code Playgroud)

为什么这里的 guid 是空的,我该如何解决?

.net c# asp.net asp.net-mvc

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