我有很多文本行,我必须找到一些行,并更改它们.
我写了这样的正则表达式规则:
^(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}
"UNIX环境中的高级编程,第3版",第151页:
getc和之间的区别fgetc是getc可以实现为宏,而fgetc不能实现为宏.这意味着三件事:
- 论证
getc不应该是带有副作用的表达.- 由于
fgetc保证是一个功能,我们可以采取其地址.这允许我们将fgetc作为参数的地址传递给另一个函数.- 呼叫
fgetc可能需要比调用更长的时间getc,因为通常需要更多时间来调用函数.
使用流指针作为参数的函数签名会出现什么"带副作用的表达式"?
#include<stdio.h>
int getc(FILE* stream);
int fgetc(FILE* stream);
Run Code Online (Sandbox Code Playgroud) 从PE规格来看:
\n\n\n\n\n在位置
\n\n0x3c,存根具有 PE 签名的文件偏移量。\n 此信息使 Windows 能够正确执行映像文件,\n 即使它具有 MS DOS 存根。该文件偏移量在链接期间被放置在\n位置0x3c。2.2. 签名(仅图像)
\n
在 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\nusing 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) 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函数的第二个变体是错误的?
使用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
我的 …
这来自Autodesk公司的AutoCAD 2013(ObjectARX SDK)的官方文档:
ObjectARX for AutoCAD 2013:自述文件 - >提示和技巧 - >释放 *字符串作为非常量指针返回:*
当调用返回非常量字符串指针的方法时(例如
AcDbSymbolTable::getName(char&* pName)),您应该释放返回的字符串占用的内存.例如:Run Code Online (Sandbox Code Playgroud)// The getName() call should be followed by a call to acutDelString(pLtName);pLtTableRcd->getName(pLtName); // ... other code acutDelString(pLtName);请注意,某些ObjectARX示例文件缺少释放内存的调用,因此它们会出现内存泄漏.在您自己的代码中使用示例时,请确保正确释放内存.
下一个参数类型的含义是什么:
AcDbSymbolTable::getName(char&* pName))
Run Code Online (Sandbox Code Playgroud)
是指针char&吗?凭什么?什么时候使用这样的结构?
谢谢.
我正在学习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)
因此,该# …
适用于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) 我学习以书本为基础的线程。
我想等待我的任务及其继续进行。但是我在“ 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) 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 是空的,我该如何解决?
c# ×5
.net ×4
c++ ×2
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
c ×1
c++11 ×1
c++14 ×1
coff ×1
constexpr ×1
fgetc ×1
getc ×1
git ×1
git-checkout ×1
haskell ×1
regex ×1
task ×1
visual-c++ ×1