小编Jos*_*hua的帖子

错误:在&token之前预期的nonqualified-id

我是C++的新手,我正在创建我的第一堂课.除了一个错误之外,我有任何错误:

error: expected unqualified-id before & token
Run Code Online (Sandbox Code Playgroud)

赋值运算符签名如下所示:

Job::& operator = (const Job &v )
Run Code Online (Sandbox Code Playgroud)

我已经尝试了我能想到的一切,删除了&,做了Job :: Job&operator,删除了Job.什么都行不通.

我知道这很简单,我只是不知道它是什么.

c++ assignment-operator

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

将双精度数分成符号、指数和尾数

我读过一些主题,这些主题已经分解了双打并“将其组合在一起”,但我正在尝试将其分解为基本组件。到目前为止,我已经确定了这一点:

breakDouble( double d ){

    long L = *(long*) &d;

    sign;
    long mask = 0x8000000000000000L;

    if( (L & mask) == mask ){

        sign = 1;

    } else {

        fps.sign = 0;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

但我对如何获得指数和尾数感到非常困惑。我成功地将双精度数强制转换为长整型,因为只有前导位很重要,因此截断不起作用。然而,对于其他部分,我认为这不起作用,而且我知道你不能对浮点数进行按位运算符,所以我陷入了困境。

想法?


编辑:当然,当我发布此内容时,我发现了这一点,但我不确定在这种情况下浮点数和双精度数有多么不同。


编辑2(抱歉,我正在工作):我读了我在编辑1中链接的帖子,在我看来,我可以以同样的方式执行他们在我的双倍上执行的操作,指数的掩码是:

mask = 0x7FF0000000000000L;
Run Code Online (Sandbox Code Playgroud)

对于尾数:

mask = 0xFFFFFFFFFFFFFL;
Run Code Online (Sandbox Code Playgroud)

它是否正确?

c double

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

使用大小为4的未初始化值

编辑:我是愚蠢的,我 - 没有 - 分配它.再次感谢您的帮助!

这是一个我认为自己已经结束的错误,但它又回到了它,我不知道它为什么会发生.

以下是导致错误的.C文件中的代码:

int main(int argc, char* argv[])
{
    if( argc > 3 )
    {
        cout << "Too many arguments. Program will close.\n";
        return 1;
    }

    else
    {
        int numRooms = 0;
        int start = 0;
        ifstream file;

        if( argc == 3 )//Dump wanted
            file.open( argv[ 2 ] , ifstream::in );

        else 
            file.open( argv[ 1 ] , ifstream::in );


        if( file.is_open() )
        {
            file >> numRooms;
            Graph * maze = new Graph( numRooms );
Run Code Online (Sandbox Code Playgroud)

格拉夫*迷宫=新图形(numRooms); …

c++

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

致命错误:QtGui/QApplication:没有这样的文件或目录|

首先,是的,我确实彻底搜索了几十个相似的名字帖子,我的解决方案要么不存在,要么对我对该主题的有限知识不明显.

我相当精通C++,经常使用它,但我确实刚刚发现了QT,并决定对它进行重击.错误是非常基本的,我认为这意味着我做了一些非常基本的错误.

我在用什么:

  1. 最新版本的CodeBlocks
  2. QT的最新版本
  3. 本主题的一段示例代码:( 使用QtGui显示QImage).
  4. 代码块安装在这里:C:\ Program Files(x86)\ CodeBlocks
  5. MinGW:C:\ MinGW\bin
  6. QT:C:\ Qt\4.8.5\bin

这是我完整的环境路径:

C:\Program Files (x86)\SSH Communications Security\SSH Secure Shell; C:\Qt\4.8.5\bin
Run Code Online (Sandbox Code Playgroud)

从我引用的帖子中,听起来这是一个完整且有效的程序(我用自己的图像替换了图像),这进一步强化了我的观点,即我以一种小而深刻的方式进行了愚弄.

参考代码:

#include <QtGui/QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QImage myImage;
    myImage.load("test.png");

    QLabel myLabel;
    myLabel.setPixmap(QPixmap::fromImage(myImage));

    myLabel.show();

    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

CodeBlocks构建并运行完整的错误日志:

C:\Users\Josh\Dropbox\Code\Cards\qtTest_loadololo.cpp|1|fatal error: QtGui/QApplication: No such file or directory|
||===

 Build finished: 1 errors, 0 warnings (0 minutes, 4 seconds) ===|
Run Code Online (Sandbox Code Playgroud)

完整的构建日志:

\Dropbox\Code\Cards\qtTest_loadololo.o
C:\Users\Josh\Dropbox\Code\Cards\qtTest_loadololo.cpp:1:30: fatal error: QtGui/QApplication: No such file …
Run Code Online (Sandbox Code Playgroud)

c++ qt install codeblocks

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

%p是否将变量的地址作为指针打印,还是打印出指向的内容?

我现在已经阅读了至少十几篇关于%p的文章,我仍然没有得到明确的答案.我意识到网站上有多个帖子,我读了很多帖子.我甚至读过这篇文章,但它没有充分解释

说我有:

int x = 10;
void *p = &x;
Run Code Online (Sandbox Code Playgroud)

下面的语句是否打印出'p'的地址或'x'的地址?

printf( "Here: %p\n" , p );
Run Code Online (Sandbox Code Playgroud)

我试图获得x到p的地址.


对于某些上下文,我正在迭代堆栈,寻找指向我创建的链表的指针:

void foo(){

    register void* base asm("ebp");
    void* iter = base;

    void* mBase = MAIN_BASE; //global defined as "register void* base asm("ebp")" in main function

    void* start = &head;
    void* fin = &tail + sizeof( tail );

    while( iter != mBase ){

        if( iter >= start && iter <= fin )
            fprintf( stdout, ">>>>%p\n", iter );

        printf("iter: %p\n", iter );
        iter …
Run Code Online (Sandbox Code Playgroud)

c printf pointers

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

在第一行X行之后排序文件的更优雅的方法是什么?

今天我已经在Stack Overflow上进行了大量的搜索,找到了解决这个问题的解决方案,并且在跳过X行之后发现了很多关于排序的问题,但是没有真正可靠的通用答案,所以我把自己的方法放在一起:

head -n 15 FILE.EXT > temp.txt
tail -n+16 FILE.EXT | sort >> temp.txt
mv temp.txt FILE.EXT
Run Code Online (Sandbox Code Playgroud)

这将对文件进行排序(选择排序选项),同时保留其前15行的顺序.这显然是相当不优雅的,有三个文件引用和两个不同的值要输入.理想情况下,如果可能的话,我想提出一个不那么繁琐的命令,因为这似乎是一个非常普遍的愿望而没有太多的支持.

  • 有没有人比我的解决方案更简单?
  • 我做了什么有什么不对吗?潜在的问题?
  • 这个问题更适合使用脚本,但我的命令仍然可能比创建和执行一次性脚本更快.

我甚至不接近一个bash专家,所以我希望有一些bash-fu可以使这个快速的单行.有没有办法在单个命令中创建和引用变量,以便用户只需要输入名称和行号等内容?

sorting bash

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

没有命名类型错误

这是我遇到的最愚蠢的小问题,我找不到原因.

我知道已经有几十个和几十个这个错误已经被问过了,但是我读到的每一个都是关于声明的顺序,但是,在我在函数中使用它之前我声明了我的结构,并且仍然得到错误.

这是头文件:

#ifndef GRAPH_H
#define GRAPH_H


#include <iostream>
#include <string>
using namespace std;

class Graph {

    public:
    struct Room;

    // destructor
    ~Graph();

    // copy constructor
    Graph(const Graph &v);

    // assignment operator
    Graph & operator = (const Graph &v);

    //Create an empty graph with a potential
    //size of num rooms.
    Graph( int num );

    //Input the form:
    //int -- numRooms times
    //(myNumber north east south west) -- numRooms times.
    void input(istream & s);

    //outputs the graph as a visual layout …
Run Code Online (Sandbox Code Playgroud)

c++

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

fscanf无法正确读取文件〜以HEX格式读取字节的问题

我目前正在尝试做一些我用C++做过几十次的事情,但这是我第一次用C语言做的事情.

我有一个包含3列的巨大文本文件:hexNumber unsignedChar int

adam  38      1
john  39      1
sara  3a      1
frank        3b      0
Christopher        3c      0
kate        3d      0
Run Code Online (Sandbox Code Playgroud)

但是,就像我说文件很大,然后之间的空白因某种原因而变化.我不知道,我没有制作文件.我理解它的方式fscanf是由空格分隔的,所以任何金额都应该没问题吧?

我正在尝试将其读入一个结构数组,这是我的代码:

typedef struct node {
    unsigned char myHex;
    char* myString;
    int myInt;
} node;

void foo(bar* c){

    if( c == NULL )
        return;

    struct node nArr[205] ;

    //read in opcode information
    FILE *fp;
    fp = fopen( "input.txt" , "r" );

    if ( fp == NULL ) {
        fprintf( stderr, "Can't open input file file.txt!\n");
        exit(-1);
    }

    int …
Run Code Online (Sandbox Code Playgroud)

c file-io hex struct scanf

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

用于Web提取的正则表达式.积极的前瞻问题

下面是我正在使用的一些数据的示例.我已经阅读了一些涉及此主题的帖子,以及在regex101上尝试了一段时间.

BotInfo[-]: Source IP:[10.1.1.100] Target Host:[CentOS70-1] Target OS:[CentOS
7.0] Description:[HTTP Connection Request] Details:[10.1.1.101 - - [28/May
/2013:12:24:08 +0000] "GET /math/html.mli HTTP/1.0" 404 3567 "-" "-" ] Phase:
[Access] Service:[WEB]
Run Code Online (Sandbox Code Playgroud)

目标是拥有两个捕获组.一个用于标记(例如,源IP,目标主机,描述等),另一个用于最外面的方括号中包含的内容.

它是"最外层"的东西,因为Details标签的内容中有方括号.

这是我目前在所述正则表达式上取得的进展.我正在使用/ g标志:

\s?([^:]+):\[(.*?(?=\]\s.*?:\[))\]
Run Code Online (Sandbox Code Playgroud)

除了边缘情况之外,它处理所有事情(它比需要的更复杂,因为我一直在努力让边缘情况起作用).

我当前的lookahead(\]\s.*?:\[),在高级别,是匹配最后左括号,然后匹配下一个标签.另一个问题是,在最后一场比赛中失败,因为没有以下标签.


编辑:请求成功输出的示例.使用提供的数据,目标是有两个捕获组产生这些对:

MATCH 1
1.  `Source IP`
2.  `10.1.1.100`
MATCH 2
1.  `Target Host`
2.  `CentOS70-1`
MATCH 3
1.  `Target OS`
2.  `CentOS 7.0`
MATCH 4
1.  `Description`
2.  `HTTP Connection Request`
MATCH 5
1.  `Details`
2.  `10.1.1.101 - - [28/May/2013:12:24:08 +0000] "GET …
Run Code Online (Sandbox Code Playgroud)

regex lookahead

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