小编oct*_*bus的帖子

如何确定scanf是否读取格式中指定的内容?

我有一个定义变量的程序 int data

该程序用于 scanf("%d",&data)从stdin读取数据.如果来自stdin的数据不是整数,我必须打印错误消息.

我试过了 if(scanf("%d",&data) ==EOF){ printf("error");return 1;}

它对我没用.那么,我如何确定scanf是否失败或成功?

c integer scanf

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

如何配置git忽略文件?

我们想要忽略一些文件,而不是通过git跟踪,我们无法弄清楚如何做到这一点.

我们有一些第三方C库已解压缩,我们在Git中有它.但是当你configure && make它,它会产生许多新文件.如何写入.gitignore跟踪源文件而不是新的东西.(这不像禁止*.o)

编辑:至少有12种文件类型.所以我们不想枚举,我们想要哪种类型,哪些不是.

c git

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

构造Clojure defmulti/defmethod

我错过了关于defmulti和defmethod的重要观点.我读过几本书对defmulti的解释,我仍然感到困惑.

我想得到一个随机值,取决于它是一个交易还是100.00这样的金额

我想调用(random-val)并返回avail-trans值或随机小数.我已经尝试将函数放在一个映射中,但是我得到了相同的值,用于avail-trans,一个\ B.

(def^:dynamic map-val {:trans (random-trans) :amt (random-amount)})
Run Code Online (Sandbox Code Playgroud)

这是显示我正在做的不起作用的最小代码量.我很感激任何指针或帮助.

(def^:dynamic avail-trans [\B \W \D \A])

(defn random-trans 
    [] 
    (nth avail-trans (.nextInt random (count avail-trans))))

(defn random-amount
    []
    (float (/ (.nextInt random (count (range 1 10000))) 25 )))
Run Code Online (Sandbox Code Playgroud)

以下构造不正确,但我不确定为什么或如何解决问题:

(defmulti random-val :val-type)

(defmethod random-val :trans []
    (random-trans))

(defmethod random-val :amt []
    (random-amount))
Run Code Online (Sandbox Code Playgroud)

调用(random-val :trans)导致此错误:

java.lang.IllegalArgumentException:multimethod'random-val'中没有用于调度值的方法:null(NO_SOURCE_FILE:0)

clojure

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

你如何在vim中重置ftp密码?

假设我想在vim中访问此远程文件

ftp://amr@steamboy//home/amr/bin/dr_snapshot.py

并且,在提示时,我不小心输入了错误的密码.

如何重置密码?现在我必须退出并重新启动vim.

客户端和服务器都在Linux上.

谢谢.

ftp vim

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

创建一个闭包

我想创建一个闭包(函数生成器)来将数字提升为幂,而不使用特定的Clojure库来完成此任务.现在,我可以用循环来做这件事.复发.

(defn exp1
 [in-num in-exp-multi]
 (loop [num in-num exp-multi in-exp-multi]
    (if (> exp-multi 1)
        (recur (* num in-num) (- exp-multi 1))
        num)))
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用partial来提高功率,但是我仍然坚持使用重复乘以一个数字所需的构造数次.所以,我正在寻找一个生成函数并将其应用x次的示例.

编辑:

这个例子只是用循环来解决问题..复发.我的愿望是用封闭来解决这个问题.

clojure

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

这项计划中的"返回斐波纳契......"是怎么回事?

我有问题了解return fibonacci( number-1 ) + fibonacci( number-2 )以下程序中的功能:

import sys
def fibonacci( number ):
    if( number <= 2  ):
        return 1
    else:
        return fibonacci( number-1 ) + fibonacci( number-2 )
Run Code Online (Sandbox Code Playgroud)

问题是我无法想象这条线是如何工作的:

return fibonacci( number-1 ) + fibonacci( number-2 )
Run Code Online (Sandbox Code Playgroud)

"fibonacci(数字-1)"和"斐波那契(数字-2)"是否同时处理?或者"斐波纳契(数字-1)"是第一个被处理,然后是第二个?

我只看到处理它们最终都会返回'1'所以最后的结果我希望看到它是'1 + 1'='2'

如果有人能够详细解释其计算过程,我将非常感激.

我认为这是一个非常新的问题,但我无法真正了解其过程.

python recursion fibonacci

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

什么是12345 >> 2真的算术算术?

我的问题是在下面的例子中val = val >> 2;做了什么?那是我相信它是4分裂.

int val = 12345678;
val = val >> 2;
Run Code Online (Sandbox Code Playgroud)

这是这个问题的背景.

我有一个水表的读数,比如12345678.我们的水表工作的方式是两个右手数字被扔掉读取,所以123456真的是读.(有理由丢掉两个与水流如何使寄存器转动有关的右手数字.但这与我的问题无关.)

目前,我们采用12345678并将它除以100,使用4GL整数变量,所以我没有得到十进制数.我们正在进行截断,我们没有想到,我正在尝试确定位移是否会更好.

在将读取截断为123456之后,使用最后一次读取(也是截断的)计算增量,并从中生成消耗.

我在Informix 4GL中可以使用C,我相信删除最低两位数的最佳方法是向右移位2.我相信这是我将获得的唯一方法 - 例如 -

5 digit meter   12345 --> 123
6  "     "     123456 --> 1234
7  "     "    1234567 --> 12345
Run Code Online (Sandbox Code Playgroud)

谢谢你容忍一个简单的问题.我们试图找出一个问题,即端点 - 与仪表交谈 - 是如何编程的,以及数据实际上意味着什么来自端点.

c informix bit-manipulation 4gl meter

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

为什么将Perl哈希值添加为键?

我有一个哈希 my %read_data = ();

我正在尝试建立像这样的键和值

$read_data{"status"} = 0;
$read_data{"suffix"} = "_SP";
$read_data{"consumption"} = 95;
Run Code Online (Sandbox Code Playgroud)

我所看到的如下,我无法弄清楚我做错了什么.

Key=status
Key=0
Key=suffix
Key=_SP
Key=consumption
Key=95
Run Code Online (Sandbox Code Playgroud)

我正在打印这个

for my $k1 (%read_data)
{
  print "Key=".$k1."\n";
}
Run Code Online (Sandbox Code Playgroud)

perl

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

何时使用已定义

我对测试参数的方式感到有点困惑.以下是从下面发布的源代码中的两个示例.首先是这个

if(!defined($DBHdl) || !defined($acct_no));

测试未定义参数的方法?

其次,在分配hashref之后

$ptMtrRecRef = $ptSelHdl->fetchrow_hashref;

是测试$ptMtrRecRef被定义使用的最佳方式

if(!$ptMtrRecRef)

要么

if(!defined($ptMtrRecRef))

###############################################################################
#  Returns count of meters per account number.

# $PkNam  -- package name discarded
# $DBHdl -- ICS database handle
# $acct_no -- water account number

sub mgbl_get_meter_count
{
    my ($PkNam, $DBHdl, $acct_no) = @_;

    die("mgbl_get_meter_count passed undef handles.\n")
        if(!defined($DBHdl) || !defined($acct_no));

    my $ptSelHdl;
    my $ptMtrRecRef;

    my $sql_statement = 
     "select count(*) from meter m where m.acct_no = ".$acct_no.";";

    $ptSelHdl = $DBHdl->prepare($sql_statement);

    die("Cannot prepare …
Run Code Online (Sandbox Code Playgroud)

perl

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

F#:[0;有什么区别?1; 2; 3; 4; 5]和[0,1,2,3,4,5]?

我知道如何制作清单:

let f n = 
    let out_listA = [ 0 .. (n - 1) ]
    let out_list =
        out_listA |> List.reduce (fun state item -> state + ", " + item) 
    out_list
Run Code Online (Sandbox Code Playgroud)

我正在进行在线练习,涉及打印如下所示的内容n = 5.

[0, 1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

代替

[0; 1; 2; 3; 4; 5]
Run Code Online (Sandbox Code Playgroud)

从Web上查看,逗号分隔的输出似乎是转换为字符串的列表.

那么,我的问题是[0, 1, 2, 3, 4, 5],当用从分号分隔的列表转换为用逗号分隔时,代表什么以及实际发生了什么呢?

结语:

Fyodor Soikin的评论是正确的; 我很困惑.

事实证明,以逗号分隔的列表是一个设计,用于打印出以分号分隔的列表作为数组括号内的逗号分隔列表.

以下解决方案来自github上的ehotinger:

open System

[<EntryPoint>]

let main argv = 
    let s = Console.ReadLine() |> int …
Run Code Online (Sandbox Code Playgroud)

f# list

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

标签 统计

c ×3

clojure ×2

perl ×2

4gl ×1

bit-manipulation ×1

f# ×1

fibonacci ×1

ftp ×1

git ×1

informix ×1

integer ×1

list ×1

meter ×1

python ×1

recursion ×1

scanf ×1

vim ×1