我写了一个'简单'(我花了30分钟)程序,将十进制数转换为二进制数.我确定有更简单的方法你能告诉我吗?这是代码:
#include <iostream>
#include <stdlib.h>
using namespace std;
int a1, a2, remainder;
int tab = 0;
int maxtab = 0;
int table[0];
int main()
{
system("clear");
cout << "Enter a decimal number: ";
cin >> a1;
a2 = a1; //we need our number for later on so we save it in another variable
while (a1!=0) //dividing by two until we hit 0
{
remainder = a1%2; //getting a remainder - decimal number(1 or 0)
a1 = a1/2; //dividing our number …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现Rank-Order Clustering,这是从头开始的文章(这是一种凝聚聚类)算法的链接.我已经阅读了这篇论文(很多次)并且我有一个正在运行的实现,尽管它比我预期的要慢很多.
这是我的Github 的链接,其中包含下载和运行Jupyter Notebook的说明.
算法:
算法1基于秩序距离的聚类
输入:
N个面,秩 - 顺序距离阈值 t .
输出:
集群集C和"未分组"集群 C un.
1: 通过让每个面都是单个元素簇来初始化簇C = { C 1,C 2,... C N }
.
2:重复
3: 为所有一对Ç Ĵ和Ç 我在Ç 做
4:计算距离d - [R ( Ç 我,Ç Ĵ)由(4)和 d Ñ(Ç 我,Ç Ĵ通过)(5).
5: 如果 d - …
我正在为Word开发VSTO应用程序加载项,并希望在固定位置的第一页上始终保持形状.有没有办法在没有主动监控形状状态的情况下做到这一点?
回答说"无法做到"并且有很好的解释原因也是受欢迎的.
我有WPF c#服务器应用程序(WCF),并希望在其中使用c ++/WinRT动态库.我可以通过使用带有WPF应用程序的UWP桌面桥和包含我的dll的UWP空应用程序来完成此操作.这适用于没有提升权限的应用程序,但WCF服务需要以管理员身份运行它.我可以通过以管理员身份启动我的应用程序或在项目清单文件中添加标签来实现此目的(requireAdministrator对于WPF和allowElevationUWP).
我的问题就在这里开始我得到的异常System.TypeLoadException与内部异常 System.Runtime.InteropServices.COMException的代码0x80040154 (REGDB_E_CLASSNOTREG))从System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr pCPCMD)我办的应用程序作为管理员.
这种行为类似于我在没有桌面桥项目的情况下使用c ++/WinRT库时的行为.有这样的问题的解决方案吗?
我编译了针对Windows 10 1809(17763)版本的所有项目.
编辑:
我不关心桌面桥,但我只能找到用c ++/WinRT连接c#的方法.我想要的是使用通过MSIDL导出的类到c#应用程序.
在VS 2017中重新创建此问题的说明(要求是使用Windows 10 1809或更高版本):
1.首先,请从nuget安装C++/WinRT项目模板.
2.接下来创建Windows运行时组件(C++/WinRT)的新项目,选择目标和最低版本的Windows到1809.您应该获得单个类的项目Class.
3.现在在同一个解决方案中创建C#WPF App项目(Framework 4.7.2).在其中添加对运行时组件项目的引用,并为此引用将Copy Local设置为False.Class在WPF项目中使用(例如,在MainWindow类中创建字段RuntimeComponent1.Class c = new RuntimeComponent1.Class();)
此时,两个项目都应该是可编译的,但WPF项目将在运行时抛出异常(TypeLoadException可能是内部异常或根异常).此步骤也是我想要实现的,所有后续步骤对我来说都是多余的,但是创建工作应用程序是必需的.
4.接下来创建Windows Universal Blank App(将平台版本设置为1809),并像之前的WPF一样添加对运行时组件项目的引用,并将Copy Local设置为False.
5.之后创建Windows应用程序打包项目(目标和最低平台版本设置为1809),在其中添加UWP和WPF应用程序(应该无法添加库项目).将WPF应用程序设置为入口点.
6.此时,打包项目应该是可编译的,可以运行而不会出错.此外,应该可以从菜单启动以管理员身份运行Packaging应用程序,但它会产生运行时异常(TypeLoadException).
7.最后,默认情况下,使用提升权限运行应用程序,添加到WPF项目Application Manifest File并将requestedExecutionLevel标记更改为<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />.此外,在Package.appxmanifest内包装项目添加<rescap:Capability Name="allowElevation" />后<rescap:Capability Name="runFullTrust" />.此步骤需要以1809作为最低版本构建.
在thous steps之后,应用程序将抛出TypeLoadException(因为root或内部异常取决于如何使用Class).实际上显示它抛出的东西而不是仅仅是死亡将WPF项目类型更改为控制台,然后它会在死亡前短暂打印异常.
当我暂停程序时,我和我的团队遇到了 Visual Studio 显示乱码而不是正确字符串内容的问题。里面的字符串数据是正确的,只是VS的调试器不知何故丢失了。
\n\n我将正确的内容标记为绿色,错误的内容标记为红色。
\n\n\n\n你可以看到std::string定义为
const std::string testStdString = "contents of std::string";\nRun Code Online (Sandbox Code Playgroud)\n\n显示为"\\b\xc3\x84\xc4\x8eD\\x19"调试悬停和监视窗口。但 C 弦.c_str()显示良好。写入的控制台cout也显示正常。\n这个损坏的值在每次运行时都会发生变化。
在原始视图模式下,您可以看到指针内容显示为 ASCII 时,看起来就像调试器认为的字符串内容。那么也许有一些短字符串优化相关的问题?
\n\n\n\n如果将其解码为字符串:
\n\n"\\b\xc3\x84\xc4\x8eD\\x19"\n [0x00000000]: 0x08 \'\\b\'\n [0x00000001]: 0xc4 \'\xc3\x84\'\n [0x00000002]: 0xcf \'\xc4\x8e\'\n [0x00000003]: 0x44 \'D\'\n [0x00000004]: 0x19 \'\\x19\'\n [0x00000005]: 0x00 \'\\0\'\nRun Code Online (Sandbox Code Playgroud)\n\n它buf与原始视图中可见的属性匹配:(0x0000001944cfc408相反顺序)。
问题仅影响std::string和std::wstringC 字符串工作正常。当我尝试使用std::string::c_str()它时效果也很好。
当我尝试使用一个简单的新项目时,不会出现此问题 - 但在我们使用本机 C++ 和 C# UWP 解决方案的 …
嗨,我有一个与此类似的问题:
我想通过电子邮件将所有文件附件保存到硬盘上的文件中。但是,如果我是正确的话,则不是多部分电子邮件的所有部分都是“真实”文件(例如,电子邮件中html部分中的某些图像)。我想100%确定我保存的文件是附件。
现在我有这个:
mail = "";
for line in sys.stdin:
mail += line;
msg = email.message_from_string(mail);
for part in msg.walk():
check if is file and save
Run Code Online (Sandbox Code Playgroud) 考虑这个代码:
#include <iostream>
#include <compare>
class A {
public:
int i = {};
std::strong_ordering operator<=> (A const& r) const
{
return i <=> r.i;
}
};
void TestA()
{
A a;
A b;
std::cout<< (a<b);
std::cout<< (a>b);
std::cout<< (a<=b);
std::cout<< (a>=b);
//std::cout<< (a==b); //ERROR
std::cout << 'E';
//std::cout<< (a!=b); //ERROR
std::cout << 'E';
std::cout<< std::is_eq(a<=>b);
std::cout<< std::is_neq(a<=>b) << std::endl;
}
class B {
public:
int i = {};
std::strong_ordering operator<=> (B const& r) const = default;
};
void TestB()
{ …Run Code Online (Sandbox Code Playgroud)