小编jas*_*cks的帖子

Mips如何存储用户输入字符串

我以前认为我知道如何做到这一点.但后来我真的试着去做.这是我写的程序但是Mac的Berkeley S***模拟器说最后一行有语法错误.我做错了什么?

       .text
       .globl __start
    __start:
        la $a0,ask
        li $v0,4
        syscall

        li $v0,8
        syscall

        la $t0,buffer
        move $t0,$v0
        syscall

        la $a0,ret
        li $v0,4
        syscall

        move $a0,$t0
        li $v0,4
        syscall

        .data
      ask:  .asciiz "Enter string: "
      ret:  .asciiz "You wrote: "
      buffer:   .space 100
Run Code Online (Sandbox Code Playgroud)

string mips spim

8
推荐指数
2
解决办法
10万
查看次数

perl:在使用"strict refs"时,不能将字符串用作ARRAY引用

我有这个问题,我试图将数组传递给sub,它读取其他一些值.在这个测试脚本中,我传递的是数组@players的引用,但是它的读取字符串是$ buffer.

use Data::Dumper;

my @players = [];
my @playerscores = [];
my %FORM;

my $buffer = "numplayers=2&changeplayers=3&CHANGEIT=CHANGEIT&player1=a&player2=b&restart=1&newcoords=";

sub testsub {
    my @testee = @$_[0];
    print "in testsub: $testee[0]\n";
}

my @holder = split(/&/,$buffer,);
foreach my $iter (@holder)
{
    my ($name,$value) = split(/=/,$iter);
    $FORM{$name} = $value;
}
$_ = $buffer;
foreach my $key (keys(%FORM))
{
    if($key=~ /player[1-9]/)
    {
        if(!($FORM{$key} eq ""))
        {
            my $holder = $key;
            $holder =~ s/player//;
            $players[$holder] = $FORM{$key};
            $playerscores[$holder] = 0;
            $_ = $buffer;
        }
    } …
Run Code Online (Sandbox Code Playgroud)

arrays perl

8
推荐指数
1
解决办法
3万
查看次数

vi ::如何只替换一行中的第二次出现?

:s/u/X/2 - 这会将当前和下一行的第一个u替换为X ...

或用X ????替换一行中的第二个字符 IDK.

或者它的其他东西:s?

我怀疑我必须使用某种类型的分组(\ 2?)但我不知道写那个.

我听说sed中的sed和:s选项是相似的,在sed的帮助页面上我发现:

3.1.3. Substitution switches:

Standard versions of sed support 4 main flags or switches which may be added to
the end of an "s///" command. They are:

   N      - Replace the Nth match of the pattern on the LHS, where
            N is an integer between 1 and 512. If N is omitted,
            the default is to replace the first match only.
   g      - Global replace of all matches to the …
Run Code Online (Sandbox Code Playgroud)

regex vi options

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

perl regex:正则表达式需要描述整个段以便前瞻分组工作吗?

我正在测试Jeffrey Friedl的"掌握正则表达式"中的一个例子.我不明白他给出了展示未来/后面的"commafication"例子:

my $test1 = "the new york lotto jackpot is now 1856000 dollars";
my $test2 = "the new york lotto jackpot is now 1856000 dollars";

print "original statement: $test1\n";

$test1 =~ s/(?<=\d)(?=(\d\d\d)+)/,/g;
print "test 1: $test1\n";

$test2 =~ s/(?<=\d)(?=(\d\d\d)+(?!\d))/,/g;
print "test 2: $test2\n"; 
Run Code Online (Sandbox Code Playgroud)

结果:

original statement: the new york lotto jackpot is now 1856000 dollars
test 1: the new york lotto jackpot is now 1,8,5,6,000 dollars
test 2: the new york lotto jackpot is now 1,856,000 dollars
Run Code Online (Sandbox Code Playgroud)

正则表达式的目标是每3位数字插入一个逗号.

我不理解角色 …

regex perl

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

第一次使用Qt:如何显示图像?

Noob:如何显示图像我对此很新,只是实际开始.我需要弄清楚如何在屏幕上显示图像.

首先我试过:

源代码:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QGraphicsScene scene;
    QGraphicsView view(&scene);
    QPixmap qp = QPixmap("../images/tank2.bmp");
    if(qp.isNull())
    {
        printf("Yes its null\n");
    }
    else
    {
        QGraphicsPixmapItem item(QPixmap("../images/tank2.bmp"));
        scene.addItem(&item);
    }
    view.show();
    return a.exec();

}
Run Code Online (Sandbox Code Playgroud)

从:

Qt jpg图像显示

它编译并运行但不显示图像.返回0等

然后我只是从那里搞砸了.我也很好奇:在Qt编辑器中,它们显示了磁盘上不存在的文件结构.它们有文件"Headers","Sources"和Resources,而在系统上它只是一个文件夹"projectname",其中包含一个文件夹中的所有文件.这只是为了视觉清晰度吗?

我正在使用的QtCreator版本是2.4.1运行Qt 4.7.4 64位.

我最终的目标是创建一个小部件,其中图片是一个可点击的图标,您可以在其中选择该图片并将其放置在更大的屏幕上,如瓷砖.

另一个问题:为什么Qt有像"QString"和"QChar"这样的东西?普通的c ++库有什么问题吗?

c++ qt

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

如何通过手册页解析以快速查找有关程序选项("-I")的信息?

我正在尝试构建freeglut,我只想调试一个bash脚本选项,我需要找出具体-I-Lgcc编译器选项的功能.我不应该经历10,000条令人讨厌的文字.

我刚刚尝试了以下内容

man gcc | cat > gcc.txt
grep "-I" gcc.txt
Run Code Online (Sandbox Code Playgroud)

linux

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

python,如果/ elif/else语法被评论分开?

我把这个函数写成了我试图在pygame中创建的滚动面板的一部分.该函数是一个名为slot的类的一部分,它是面板类的一部分,slot是包含字符串或数据的面板上的条.此方法将插槽绘制到屏幕上,如果屏幕位于插槽之间,则仅绘制插槽的一部分.if/elif/else语法让我沮丧:

    def mydraw(self,my_pygame,scrn,panel_x,panel_y,scroll_at,window_size,virtual_size):
        if((self.y<(scrollat+window_size))or((self.e_y)>scrollat)):
            onscreensy = (self.y-scrollat)+panel_y
            onscreeney = onscreensy + self.dim_y
            """the top case"""
            if(onscreensy<panel_y):
                onscrnwidth = (onscreensy+self.dim_y)-panel_y
                onbitmapwidth = self.dim_y-onscrnwidth
                holder = self.bitmap.subsurface(0,onbitmapwidth-1,self.dim_x,onbitmapwidth-1)
                scrn.blit(holder,(panel_x,panel_y))
            """end top case"""
            """the normal case"""
            elif(onscreeney<(panel_y+window_size)):  #### right here ####
                scrn.blit(self.bitmap,(panel_x,onscreensy))
            """end normal case"""
            """the bottom case"""
            else:
                onscrnwidth = (panel_y+window_size)-self.y
                onbitmapwidth = self.dim_y-onscrnwidth
                holder = self.bitmap.subsurface(0,0,self.dim_x,onbitmapwidth-1)
                scrn.blit(holder,(panel_x,onscreensy))
            """end bottom case"""
        if(self.has_next==True):
            self.next.mydraw(my_pygame,scrn,panel_x,panel_y,scroll_at,window_size,virtual_size)
Run Code Online (Sandbox Code Playgroud)

错误:

me$ python testscrolling3.py
  File "testscrolling3.py", line 164
    elif(onscreeney<(panel_y+window_size)):
       ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

python comments pygame if-statement

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

c:调试模糊内存泄漏的策略?

我正在用 c 开发一个项目,我试图了解如何调试一个使我的程序崩溃的模糊错误。它有点大,通过制作较小版本的代码来隔离问题的尝试是行不通的。所以我试图想出一种方法来调试和查明内存泄漏。

我想出了以下计划:我知道问题来自运行某个函数,并且该函数递归调用自身。所以我想我可以为我的程序内存分配做一个快照。由于我不知道 jack 引擎盖下会发生什么(我知道在这种情况下还不够有用):

typedef struct record_mem {
    int num_allocs;
    int num_frees;
    int size_space;
    int num_structure_1;
    ...
    int num_structure_N;
    int num_records;
    struct record_mem *next;
} RECORD;
extern RECORD *top;
void pushmem(RECORD **top)
{
    RECORD *nnew = 0;
    RECORD *nnew = (RECORD *)malloc(sizeof(RECORD));
    nnew->num_allocs=1;
    nnew->num_frees=0;
    nnew->size_space=sizeof(RECORD);
    nnew->num_structure_1=0;
    ...
    nnew->num_structure_N=0;
    nnew->num_records=1;
    nnew->next=0;
    if(*top)
    {
        nnew->num_allocs+=(*top)->num_allocs;
        nnew->num_frees=(*top)->num_frees;
        nnew->size_space+=(*top)->size_space;
            nnew->num_structure_1=(*top)->num_allocs;
            ...
            nnew->num_structure_N=(*top)->num_allocs;
            nnew->num_records+=(*top)->num_records;
        nnew->next=*top;
    }
    *top=nnew;
}
Run Code Online (Sandbox Code Playgroud)

我的想法是在我的程序崩溃之前打印出我的内存记录的内容(由于 GDB,我知道它在哪里崩溃)。

然后在整个程序中(对于我程序中的每个数据结构,我都有一个类似上面的推送函数)我可以简单地添加一个带有计算数据结构分配加上总堆栈(堆?)内存分配(我可以跟踪的)。我只是在我觉得需要记录我的程序运行的快照的地方创建更多的 memory_record 结构。问题是,如果我无法以某种方式记录实际使用了多少内存,则此内存资产负债表记录将无济于事。

但是我该怎么做呢?另外,我将如何考虑悬空指针和泄漏?我正在使用 OS X,我目前正在查找如何记录堆栈指针和其他内容。

编辑:既然你问:valgrind的输出:(closure()是从main调用的返回错误指针的函数:它应该返回一个双向链表的头部,traversehashmap()是一个从closure()调用的函数我用来计算额外的节点并将其附加到链表中,它递归地调用自己,因为它需要在节点之间跳转。)

jason-danckss-macbook:project Jason$ valgrind --leak-check=full --tool=memcheck ./testc …
Run Code Online (Sandbox Code Playgroud)

c memory memory-leaks dangling-pointer

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

Python:类不能从单独的文件中调用?

我在一个名为robot.py的文件中有一个类robot

我想在我的主脚本中创建一个机器人实例,如下所示:

在robot.py中:

class robot(object):
    def __init__(self,pygame,screen_width,screen_height):
Run Code Online (Sandbox Code Playgroud)

在main.py中:

import pygame, sys, copy
import mouse
import robot
import menu
import button
from pygame.locals import *
...
size = [1200,900]
my_robot = robot(pygame,size[0]-400,size[1]-100)
Run Code Online (Sandbox Code Playgroud)

错误:

me:cup-robot Me$ python run.py
Traceback (most recent call last):
  File "run.py", line 24, in <module>
    my_robot = robot(pygame,size[0]-400,size[1]-100)
TypeError: 'module' object is not callable
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

python pygame

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

perl找不到已安装的模块,但CPAN可以,而且我可以找到它们.为什么不能perl?

我在macbook 10.6上使用安装在/ opt/local/bin中的perl 5.16.3的macports

jason-danckss-macbook:eg Jason$ which perl
/opt/local/bin/perl
Run Code Online (Sandbox Code Playgroud)

我正在测试AI附带的demo.pl文件:来自metaCPAN的Categorizer.pm.我安装了AI:通过CPAN随macports perl提供的分类程序:

试图运行它:

原版的:

./demo.pl /users/Jason/Desktop/Dropbox/capstone/capstone/notes/HTML/sock
Can't locate AI/Categorizer.pm in @INC (@INC contains: /sw/lib/perl5/5.10.0/darwin-thread-multi-
2level /sw/lib/perl5/5.10.0 /sw/lib/perl5/darwin-thread-multi-2level /sw/lib/perl5 /sw/lib/perl5
/darwin /Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level
/System/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level /Library/Perl/5.10.0
/Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0 /Network
/Library/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library
/Perl/Extras/5.10.0 .) at ./demo.pl line 21.
BEGIN failed--compilation aborted at ./demo.pl line 21.
Run Code Online (Sandbox Code Playgroud)

略微修改:use lib "/opt/local/lib/perl5/5.16.3";因为当我使用CPAN时,这是模块的写入位置(perl -MCPAN -e shell如果重要,我使用IDK)

jason-danckss-macbook:eg Jason$ ./demo.pl ../HTML/sock
Can't locate AI/Categorizer.pm in @INC (@INC contains: /opt/local/lib/perl5/5.16.3/darwin-thread-
multi-2level /opt/local/lib/perl5/5.16.3 /sw/lib/perl5/5.10.0/darwin-thread-multi-2level /sw/lib
/perl5/5.10.0 …
Run Code Online (Sandbox Code Playgroud)

macos perl macports

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