需要移位Int64变量.我正在从数据库文件中解析伪数学函数.变量是uint32或int32所以我确实将它们放入Int64中以平等地处理它们而不会丢失任何东西.在我的一个treenodes中,我需要将Int64移位.
不幸的是,移位运算符不适用于Int64.是否有一种我不知道的比特移位Int64的标准方法?
//Int32 Example works
int a32 = 1;
int b32 = 2;
int c32 = a32 >> b32;
//Int64 Example does not compile
Int64 a64 = 1;
Int64 b64 = 2;
Int64 c64 = a64 >> b64; //invalid operator
对于读取字符串中的字符,我需要非常严格。
我有一系列空格,后跟一个字符,再一系列空格。
例如:" c ","c",""," "
我需要找到一种格式说明符,该格式说明符允许我忽略该字符,但前提是该字符是该特定字符,而不是其他任何字符。此序列" e "应中止。
我曾尝试过," %*[c] "但是在某些情况下我的单元测试失败了,这使我相信" %*[c] "正在寻找一个或多个'c'而不是零或多个'c'。
我写了一个小例子来帮助更好地说明我的问题。请记住,这只是一个最小的示例。中心问题是如何解析数量为零或单个字符之一。
#include <stdio.h>
#include <string.h>
unsigned match(const char * formula){
    unsigned e = 0, found = 0, s;
    char del;
    int parsed, pos, len = (int) strlen(formula); 
    const size_t soc = sizeof( char );
    del = ' ';
    parsed = sscanf_s( formula, " \" %*[(] X%*[^>]>> %u %*[)] %c …IEnumerable<int> list = new[] { 1, 2, 7, 3, 11, 5 };
int item = (from x in list where (x == list.Max()) select x).First();
IEnumerable<int> above = from x in list where list.ToList().IndexOf(item) > list.ToList().IndexOf(x) select x;
IEnumerable<int> below = from x in list where list.ToList().IndexOf(item) < list.ToList().IndexOf(x) select x;
我想找到一个元素IEnumerable并将其IEnumerable分成IEnumerable不再包含我找到的元素的s.上面的代码说明了我想要实现的结果,但是我必须将IEnumerable转换为List.
我觉得必须有一种方法可以使用LinQ和IEnumerable来做到这一点.如何才能做到这一点?
cppcheck扫描项目文件夹中的所有文件.
c:\projectfolder\main.c
c:\projectfolder\file.c
c:\projectfolder\file.h
c:\projectfolder\file_test.cc
c:\projectfolder\file_test.cc 包含以下代码
#include "c:/gtest/gtest.h"
extern "C"
{
    #include "TMyStruct.h"
}
TEST(Stack, Overflow)
{
    TMyStruct unterTest;
    EXPECT_EQ(1, TMyStruct_Init(&unterTest));
    EXPECT_GE(unterTest.variable, 9000);
}
file_test.cc包含gtest.h
C:\gtest\gtest.h
不应测试C:\ gtest \中的所有文件.
我打电话
cppcheck.exe -ic:\gtest\ c:\projectfolder\ --enable=style --template="SomeError"
file_test.cc从包含的c:\projectfolder\file_test.cc内容中找到并报告错误(详细信息:"太多#ifdef配置")
我怎么告诉cppcheck根本不看C:\ gtest\gtest.h?
我写了一个简短的示例代码来说明我的问题
#include <stdio.h>
#include <string.h>
unsigned parseAndCompareDouble(const char* inSTR, const char* inF, const char * expect, const char * outF){
    unsigned e = 0;
    char buffer[2000];
    double a = 0;
    if( 1 != sscanf_s( inSTR, inF, &a, sizeof(double) ) ) e += 1;
    if( (int) strlen(expect) != sprintf_s(buffer, 2000, outF, a) ) e += 1;
    if( 0 != strcmp(expect, buffer) ) e += 1;
    return e;
}
unsigned main( void )
{
    unsigned e = 0;
    const char * universalFormat …我创建了一个bmp,并SDL_LoadBMP在检查生成的文件时使用来加载它,SDL_Surface我可以看到它的格式SDL_PIXELFORMAT_INDEX8。
我想使用SDL表面来生成纹理glTexImage2D。
通常,我只需要检查表面即可。
SDL_Surface * surface = SDL_LoadBMP(filename.c_str()); 
GLenum mode = 0;
Uint8 bpp = surface->format->BytesPerPixel;
Uint32 rm = surface->format->Rmask;
if (bpp == 3 && rm == 0x000000ff) mode = GL_RGB;
if (bpp == 3 && rm == 0x00ff0000) mode = GL_BGR;
if (bpp == 4 && rm == 0x000000ff) mode = GL_RGBA;
if (bpp == 4 && rm == 0xff000000) mode = GL_BGRA;
GLsizei width = surface->w;
GLsizei height = surface->h; …我试图掌握NUnit - 我已经安装它并在一个项目中成功运行它.我想保持生产代码与testcode分开,所以我在不同的项目中编写测试.测试项目链接到原始项目.(IDE C#Express 2010)
我的Testcode看起来像这样:
using NUnit.Framework;
namespace test.Import
{
    [TestFixture]
    class XMLOpenTest
    {
        [Test]
        public void openNotAPath(){
            try
            {
                production.Import.XMLHandler.open("Not A Path");
            }
            catch
            {
                Assert.Fail("File Open Fail");
            }
        }
    }
}
我知道我可以通过将production.Import.XMLHandler类公开来解决这个问题,但我不想更改我的生产代码以允许这种测试.
我该如何解决这个问题?我可以更改我的测试代码吗?是否有其他好方法可以在两个项目中分离测试和生产代码?互联网上有dummys的资源吗?
我的数据库提供了一个文本文件,其中包含"分隔符公式的开始和结束.公式集非常有限,一旦确定就很容易实现.我尝试使用scanf来获取参数,我想使用分隔符"来提供scanf失败的机制.
在下面的示例中,将忽略最后一个分隔符,并且丢失未找到分隔符的信息.如果sscanf能够匹配整个字符串,我该如何控制?
#include <stdio.h>
#include <string.h>
unsigned printIdentity(const char * formula){
    unsigned e = 0, found = 0;
    double a, b;
    printf("-------------\n");
    printf("INVESTIGATING: %s\n", formula);
    if( ( 2 == sscanf_s( formula, " \" X * %lf %lf \" ", &a, &b, sizeof( double ), sizeof( double ) ) ) ){
        printf("MATCH: X * %lf + %lf\n", a, b);
        ++found;
    }
    if( ( 1 == sscanf_s( formula, " \" X * %lf \" ", &a, sizeof( double …我只是偶然发现了一个来自智能指针的演员,想要检查是否static_cast可以在编译时声明以下是无意义的:
int main()
{
    char foobar[4] = "Foo";
    std::unique_ptr<char[]> myptr = static_cast<decltype(myptr)>(foobar);
    myptr.reset();
    return 0;
}
这里发生的是myptr尝试释放foobar.
我不是在问什么是智能指针或如何分配或以其他方式修复上述内容.
我认为这个问题应该在编译时捕获,因为这些类型应该是完全不兼容的.
为什么在编译时没有检测到这个?
我将同一个 UserControl 实例化两次。两者都有 Radiobuttons 并共享 GroupName。当我选择一个所有其他人时,即使它们是不同 UserControl 实例的一部分,也要取消选择。
如何避免这种 GroupName 冲突?
这是一个最小的例子来说明这一点:
主文件
<Window x:Class="RadioDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel>
        <UserControl x:Name="First"/>
        <UserControl x:Name="Second"/>
    </StackPanel>
</Window>
主要代码隐藏
public MainWindow()
{
    InitializeComponent();
    Loaded += MainWindow_Loaded;
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    First.Content = new MyRadio();
    Second.Content = new MyRadio();
}
MyRadio xaml
<UserControl x:Class="RadioDemo.MyRadio"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <StackPanel>
        <RadioButton GroupName="G" x:Name="RadioOne" Content="RadioOne"/>
        <RadioButton GroupName="G" x:Name="RadioTwo" Content="RadioTwo"/>
    </StackPanel>
</UserControl>
c# ×4
c ×3
scanf ×3
c++ ×2
formatting ×2
.net ×1
bit-shift ×1
cppcheck ×1
googletest ×1
ienumerable ×1
int64 ×1
linq ×1
nunit ×1
opengl ×1
radio-button ×1
sdl-2 ×1
static-cast ×1
textures ×1
unique-ptr ×1
wpf ×1
xaml ×1