小编Mar*_*377的帖子

我如何知道字符串是否以 null 结尾?

我正在使用 fgetc 从文件中读取字符串。因为我不知道字符串有多长,所以我需要为保存数据的数组重新分配空间。为此,我需要知道当前数组何时已满。我不太确定 char 数组在读取字符后是否以空终止。例如,我有一个大小为 8 的数组,fgetc 将给我第 9 个字符。现在数组的大小是8还是9?(8 个字符 + \0 或仅 8 个字符)。有办法测试一下吗?而如果没有\0。当我读完字符串后,我需要自己将它添加到char数组中吗?

c string

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

How to make button in Python Tkinter stay pressed until another one is pressed

I am trying to find a way Tkinter to make the Start button stay pressed until I press the Stop button.

from Tkinter import *
import tkMessageBox


class MainWindow(Frame):
    def __init__(self):
        Frame.__init__(self)
        self.master.title("input")
        self.master.minsize(250, 150)
        self.grid(sticky=E+W+N+S)

        top=self.winfo_toplevel()
        top.rowconfigure(0, weight=1)
        top.columnconfigure(0, weight=1)

        for i in range(2):self.rowconfigure(i, weight=1)
        self.columnconfigure(1, weight=1)

        self.button0 = Button(self, text="Start", command=self.save, activeforeground="red")
        self.button0.grid(row=0, column=0, columnspan=2, pady=2, padx=2, sticky=E+W+N+S)

        self.button1 = Button(self, text="Stop", command=self.stop, activeforeground="red")
        self.button1.grid(row=1, column=0, columnspan=2, pady=2, padx=2, sticky=E+W+N+S)

    def save(self):
        pass

    def stop(self):
        pass


if __name__=="__main__": …
Run Code Online (Sandbox Code Playgroud)

python user-interface tkinter button

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

麻烦在Mingw 64下使用wxWidgets 3.0.2库

这是我编译wxWidgets库的方法.

下载https://sourceforge.net/projects/wxwindows/files/3.0.2/wxMSW-Setup-3.0.2.exe

set path=%MINGW%\bin
cd D:\wxWidgets-3.0.2\build\msw

mingw32-make -f makefile.gcc CFG=64 CXXFLAGS=-std=c++11 BUILD=debug UNICODE=1 MONOLITHIC=1
mingw32-make -f makefile.gcc CFG=64 CXXFLAGS=-std=c++11 BUILD=release UNICODE=1 MONOLITHIC=1
Run Code Online (Sandbox Code Playgroud)

无法将我的测试程序与构建的新库链接起来.

D:\wxWidgets-3.0.2\lib\gcc_lib64/libwxmsw30ud.a(monolib_filename.o): In function `wxChmod(wxString const&, unsigned short)':
D:\wxWidgets-3.0.2\build\msw/../../include/wx/filefn.h:513: undefined reference to `wxMSLU__wchmod(wchar_t const*, int)'
D:\wxWidgets-3.0.2\lib\gcc_lib64/libwxmsw30ud.a(monolib_filename.o): In function `wxOpen(wxString const&, int, unsigned short)':
D:\wxWidgets-3.0.2\build\msw/../../include/wx/filefn.h:515: undefined reference to `wxMSLU__wopen(wchar_t const*, int, int)'
D:\wxWidgets-3.0.2\lib\gcc_lib64/libwxmsw30ud.a(monolib_file.o): In function `wxRemove(wxString const&)':
D:\wxWidgets-3.0.2\build\msw/../../include/wx/wxcrt.h:758: undefined reference to `wxMSLU__wremove(wchar_t const*)'
D:\wxWidgets-3.0.2\lib\gcc_lib64/libwxmsw30ud.a(monolib_file.o): In function `wxAccess(wxString const&, unsigned short)':
D:\wxWidgets-3.0.2\build\msw/../../include/wx/filefn.h:511: undefined reference to `wxMSLU__waccess(wchar_t const*, int)'
D:\wxWidgets-3.0.2\lib\gcc_lib64/libwxmsw30ud.a(monolib_filefn.o): …
Run Code Online (Sandbox Code Playgroud)

c++ wxwidgets compilation mingw-w64

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

如何使用 JavaScript 观察 URL 的变化?

Window 事件文档popstate说明:

请注意,仅调用history.pushState()or history.replaceState()不会触发popstate事件。该 popstate事件将通过执行浏览器操作触发,例如单击后退或前进按钮(或调用history.back()history.forward()在 JavaScript 中)。

我需要一种在 URL 更改时通过不触发popstate事件的方式(例如history.replaceState())来执行某些代码的方法。最好使用 MutationObserver API [1],并且绝对不要每 x 秒轮询一次 URL。

此外,hashchange不会这样做,因为我必须对URL 中的每个更改采取行动,而不仅仅是哈希部分。

那可能吗?


[1]在另一个问题上解释为什么 MutationObserver API 对此不起作用。


(其他)相关问题:

javascript events mutation-observers

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

为什么回声比打印快?

PHP中,为什么echo速度比print

他们做同样的事情......为什么一个比另一个更快?

他们做的完全一样吗?

php printing comparison performance echo

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

错误:没有这样的文件或目录:编译makefile后'-std = c ++ 11'

当我make在终端中编译使用它打印:

g++ -Wall –std=c++11 -c File.cpp
clang: error: no such file or directory: '–std=c++11'
make: *** [Book.o] Error 1
Run Code Online (Sandbox Code Playgroud)

生成文件:

PROG = studs
CC = g++
OBJS = File.o FileTestDriver.o
CPPFLAGS = -Wall –std=c++11

$(PROG) : $(OBJS)
    $(CC) -o $(PROG) $(OBJS)
File.o : File.h
    $(CC) $(CPPFLAGS) -c File.cpp
FileTestDriver.o :
    $(CC) $(CPPFLAGS) -c FileTestDriver.cpp
clean:
    $(RM) $(PROG) $(OBJS)
Run Code Online (Sandbox Code Playgroud)

FileTestDriver具有main函数,File.cpp只是一个带有一些构造函数,实例变量和函数的简单类.我不确定问题出在哪里,但我认为它是在Makefile中,因为我刚开始使用它们.

当我简单编译时,g++ -std=c++11 File.cpp我得到错误:

Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for …
Run Code Online (Sandbox Code Playgroud)

c++ makefile compilation c++11

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

为什么我的对象似乎不使用`new`就在堆上?

我开始学习动态内存分配的主题。

我有以下代码:

#include <iostream>
#include "A.h"
#include "B.h"

using namespace std;

int main() {

   /* Both objects on Stack */

   A classAStack;
   B classBStack;

   /* Both objects on Heap*/
   //  A *classAHeap = new A();
   //  B *classBHeap = new B();

   /* A objects on Heap B ???*/
   A *classAHeap = new A();

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

#ifndef A_H_
#define A_H_

#include <iostream>
#include "B.h"

class A {
public:
   A();
   virtual ~A();

public:
   B b;
};

#endif /* A_H_ */
Run Code Online (Sandbox Code Playgroud)

#include …
Run Code Online (Sandbox Code Playgroud)

c++ heap-memory dynamic-memory-allocation stack-memory

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

尽管拥有正确的NuGet软件包,为什么我仍需要在计算机上安装MySQL连接器?

我有一个使用MariaDB和Entity Framework 6的C#ASP.NET MVC项目。

该项目在Visual Studio 2017中完成,花了我很长时间仔细检查是否以NuGet包MySql.Data 8.0.13MySql.Data.EntityFramework的形式添加了正确的MySQL连接器的程序集引用。8.0.13(均由Oracle正式发布),因为在调试时浏览View时出现以下错误:

具有不变名称'MySql.Data.MySqlClient'的ADO.NET提供程序未在计算机或应用程序配置文件中注册。

在我放弃它并尝试安装MySQL Connector / NET 8.0之前,它一直有效。web.config除了由NuGet执行的更改外,没有对文件进行任何更改。

我检查了安装程序放置%ProgramFiles%\MySql\Connector的程序集,它们与NuGet拉出的程序集完全相同。哎呀,我什至删除了整个文件夹,它仍然有效

是什么赋予了?NuGet软件包是否缺少应执行的某些步骤?

c# mysql entity-framework visual-studio nuget

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

这些 awk 命令是否容易受到代码注入的攻击?

当我阅读如何在 awk 脚本中使用 shell 变量? 的答案时,我不确定如何正确编写使用 shell 变量的特定 awk 命令脚本。。

接受的答案演示了在命令中插入 shell 变量如何awk容易发生恶意代码注入,虽然我能够重现该演示,但我无法使用以下两个命令中的任何一个找到相同的问题:

#HWLINK=enp10s0
ip -o route | awk '/'$HWLINK'/ && ! /default/ {print $1}'
ip -o route | awk "/$HWLINK/"' && ! /default/ {print $1}'
Run Code Online (Sandbox Code Playgroud)

因此,主要问题是其中任何一个(或两个)是否容易受到攻击。

第二个问题是哪种形式是首选。我尝试过ip -o route | awk -v hwlink="$HWLINK" '/hwlink/ && ! /default/ {print $1}',但这不起作用。

ps这是一个重构;原来的命令是ip -o route | grep $HWLINK | grep -v default | awk '{print $1}'.

linux bash shell awk code-injection

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

REXX例程将返回唯一的字符串

我想定义一个函数,每次调用它时都返回一个唯一的字符串.在接下来的50年中,此函数的返回值必须是唯一的.这是我累了:

k.rand=USERID()
do i=1 to 10 by 1
 n=RANDOM(1,26)
k.i=word('a b c d e f g h I j k l m n o p q r s t u v w x y z ',n)
m.i= WORD('@ ! # $ % ^ * 1 2 3 4 5 6 7 8 9',i)
k.rand=k.rand ||k.i ||m.I
END
say k.rand
Run Code Online (Sandbox Code Playgroud)

mainframe rexx

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

数组索引与数组元素

这是一个与这个问题相关的元问题:如何编写无分支std :: vector扫描?.

最初提出的问题(强调我的):

我有一个std::vector<int> data; 我想找到小于9的所有数组索引并将它们添加到结果向量中.

然后我把它编辑成:

我有一个std::vector<int> data,我想找到所有小于9的元素并将它们添加到结果向量中.

然后另一位用户将其编辑为:

我有一个std::vector<int> data,我想找到元素小于9的所有数组索引,并将它们添加到结果向量.

我将其标记为主持人还原,说明:

我重写了这个问题(stackoverflow.com/posts/38798841/revisions),其主要目标是将"数组索引"替换为"元素",因为这实际上是被问到的 - 并且在此上下文中引用"索引/索引"会导致有些困惑.然而,用户Aconcagua推翻了我编辑的这个关键部分.我相信他的最新编辑应该回滚.

它有理由拒绝:

阿空加瓜的编辑是正确的; 用户正在收集数组指标,而不是数组元素本身

.

现在,我不太明白主持人说的是什么 - "用户正在收集阵列标记".我看到它的方式,索引是数组中元素的位置.例如,在C语言中:

char array[] = {'t', 'e', 's', 't'};
int index = 1;
char element = array[index];
printf('%c', element);
Run Code Online (Sandbox Code Playgroud)

我根本不知道他将如何或为什么收集"指数"而不是"元素".有人可以澄清一下这样我真的能理解吗?

c c++ arrays indices

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