小编Dra*_*scu的帖子

Scanf/Printf双变量C.

假设我在C中有以下代码:

double var;
scanf("%lf", &var);
printf("%lf", var);
printf("%f", var);
Run Code Online (Sandbox Code Playgroud)

它从stdin变量'var'读取,然后在stdout'var'中打印两次.我理解你是如何从stdin读取双变量的,但我的问题是:

  1. 为什么你可以用%lf打印双倍?
  2. 为什么你可以用%f打印双倍?
  3. 使用哪一种更好更正确?

c double printf stdin stdout

36
推荐指数
3
解决办法
23万
查看次数

检查Shell脚本$ 1是绝对路径还是相对路径

正如标题所说,我正在尝试确定我的bash脚本是否将完整路径或相关文件作为参数接收到目录.

由于某些原因,以下似乎对我不起作用:

#!/bin/bash

DIR=$1

if [ "$DIR" = /* ]
then
    echo "absolute"
else
    echo "relative"
fi
Run Code Online (Sandbox Code Playgroud)

当我用完整路径或绝对路径运行我的脚本时,它说:

./script.sh: line 5: [: too many arguments
relative
Run Code Online (Sandbox Code Playgroud)

由于某些原因,我似乎无法弄清楚这个错误.有任何想法吗?

bash shell

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

如何访问React组件之外的历史对象

首先,我对withRouter HoC 非常熟悉,但是,在这种情况下,它没有帮助,因为我不想访问history组件中的对象.

我正在尝试实现一种机制,如果我从API端点收回401,则会将用户重定向到登录页面.为了发出http请求,我正在使用axios.我需要覆盖大约60个端点,这些端点在我的应用程序中用于十几个组件.

我想为axios实例对象创建一个装饰器函数,它:

1. makes the request
2. if fail && error_code = 401, update user route to `/login`
3. if success, return promise
Run Code Online (Sandbox Code Playgroud)

我对上面的问题是更新用户的路线.以前,react-router-v3我可以browserHistory直接从react-router包中导入对象,这是不可能的.

所以,我的问题是,如何在不通过调用堆栈的情况下访问React组件之外的历史对象?

react-router react-router-v4

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

反应路由器匹配错过

什么是使用的优势MatchMiss部件免受react-routerRouter组件?我似乎无法在react-router docs中找到任何关于此的文档.

我的问题来自于反应 - 通用样板,更准确地说,通过查看这里:https://github.com/ctrlplusb/react-universally

reactjs react-router

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

如果文件不存在,如何执行某些命令?

我想检查文件是否存在,如果不存在,则创建它.

考虑以下C代码的等价物,但使用shell脚本.

if(!exist) {
    command;
    command;
}
else {
    command;
    command;
}
Run Code Online (Sandbox Code Playgroud)

shell file

9
推荐指数
4
解决办法
4万
查看次数

在C-string中包含双引号(")

我想在C中定义一个包含以下字符集的变量字符串:a-zA-Z0-9'-_”.

所以我会这样做:

char str[64] = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789'-_""
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,问题最终出现在"角色上.

问题1:我该如何解决这个问题?

问题2:有没有比我更好的方法来定义这样的字符串?

PS:我真的不知道如何标题我的问题,所以如果你有更好的问题,请编辑它.

c string

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

Shell 脚本通过 Trap 获取 CTRL+Z

我正在尝试在我的脚本中获取 SIGSTOP CTRL+信号。Ztrap

当我的脚本正在执行时,如果我暂时暂停执行,发送 SIGSTOP 信号CTRL+ Z,它需要删除我在其中创建的文件并终止执行。

我不明白为什么下面的脚本不起作用。但更重要的是,正确的做法是什么?

#!/bin/bash

DIR="temp_folder"
trap "rm -r $DIR; kill -SIGINT $$" SIGSTP

if [ -d $DIR ]
then
    rm -r $DIR
else
    mkdir $DIR
fi
sleep 5
Run Code Online (Sandbox Code Playgroud)

编辑

SIGSTOP不能被捕获,但是SIGTSTP可以被捕获,根据我在互联网上搜索CTRL和下面的答案后的理解,用+发送信号时捕获是正确的Z。但是,当我在运行脚本时按CTRL+时,它将被卡住,这意味着无论我之后发送什么信号,脚本都会无限执行。 Z在此输入图像描述

linux bash shell signals bash-trap

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

Prestashop 1.7安装Ubuntu 14.04 LAMP重定向太多

我试图在Digitalocean的Ubuntu 14.04 LAMP Droplet上安装Prestashop 1.7.

将Prestashop源文件复制到presta文件夹下后/var/www/html,当http://95.85.6.69/presta/我在浏览器中访问时,我被重定向到http://95.85.6.69/presta/install/index.php?step=welcome很酷,除了它一直在重定向,直到我得到:ERR_TOO_MANY_REDIRECTS抛回我身边.

难道我做错了什么?有没有我错过的配置?我怎么能超越那个错误?

chrome dev工具 - >网络

上图是错误描述的补充.

PS:忽略IP中的差异,因为它们是在Digitalocean上多次部署相同快照ubuntu 14.04 LAMP的结果.

apache ubuntu prestashop prestashop-1.7

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

从字符串C获取int值

鉴于我有以下内容:

char str[] = "1524";
int nr;
Run Code Online (Sandbox Code Playgroud)

我想得到1524'nr'中的数字.

在C中实现这一目标的最佳方法是什么?

c string int

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

C字符串指针函数strdel

有人可以解释一下为什么我会得到"分段错误......"以及如何在这段代码上修复它?

#include<stdio.h>

int str_length(char *s) {
    int length = 0, i;
    for(i = 0; *s; i++) {
        s++;
    }
    return i;
}

char *strdel(char *s, int pos, int n) {
    int i;
    char *p, str[] = "";
    p = str;
    for(i = 0; i < str_length(s) - n + 1; i++)  {
        if(i >= pos) {
            *(p + i) = *(s + i + n);
        }
        else {
            *(p + i) = *(s + i);
        }
    }
    s = str; …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers function cstring

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

堆栈结构C的自由指针

给出以下用C编写的代码:

#include<stdio.h>
#include<stdlib.h>

typedef struct {
    int var;
    int **m;
} STRUCTURE;

int main() {
    STRUCTURE a;
    int i, j;

    a.var = 5;

    a.m = malloc(a.var * sizeof(int *));
    for(i = 0; i < a.var; i++) {
        a.m[i] = calloc(a.var, sizeof(int));
    }

    for(i = 0; i < a.var; i++) {
        a.m[i][i] = 1;
    }

    for(i = 0; i < a.var; i++) {
        for(j = 0; j < a.var; j++) {
            printf("%d ", a.m[i][j]);   
        }
        printf("\n");
    }

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

这将简单输出: …

c malloc struct std calloc

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

PHP字符串分解

分解以下字符串的最佳方法是什么:

$str = '/input-180x129.png'
Run Code Online (Sandbox Code Playgroud)

进入以下:

$array = array(
    'name' => 'input',
    'width' => 180,
    'height' => 129,
    'format' => 'png',
);
Run Code Online (Sandbox Code Playgroud)

php arrays string decomposition

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

定义Array C/C++

这两个数组定义有什么区别,哪一个更正确?为什么?

#include <stdio.h>
#define SIZE 20

int main() {

    // definition method 1:
    int a[SIZE];
    // end definition method 1.

    // defintion method 2:
    int n;
    scanf("%d", &n);
    int b[n];
    // end definition method 2.

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

我知道,如果我们看大小,变量n,从stdin,这是更正确的定义我们(我们将使用的内存块)数组的指针,并使用stdlib.harray = malloc(n * sizeof(int)),而不是decalring它int array[n],但是又为什么呢?

c c++ arrays c-preprocessor

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