问题列表 - 第48240页

期待来自std :: cin的输入(Unix C++)

可能重复:
检测stdin是C/C++/Qt中的终端还是管道?

我正在编写一个命令行应用程序,它将数据作为命令行参数或来自cin.

有没有办法检查用户是否在应用程序中传输了一些数据($ ./myapp <test.txt),如果没有,只显示键盘输入的提示?

如果我正在检查!cin.good()/ cin.eof()等,则提示将永远不会出现.

c++ unix linux command-line pipe

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

使用ObjectAtIndex可以提供超出边界的错误

我想做一些非常简单的事情,但是我得到了一个错误,我错过了什么?

int i;
int count;

TutorialAppDelegate *appDelegate = (TutorialAppDelegate *)[[UIApplication sharedApplication] delegate];
Animals *aAnimal = (Animals *)[appDelegate.animals objectAtIndex:i];
count = [animals count];


if (i < count)
{
    NSLog(@"%@",aAnimal.animalName);
}
Run Code Online (Sandbox Code Playgroud)

错误:

 '*** -[NSMutableArray objectAtIndex:]: index 22510243 beyond bounds [0 .. 5]'
Run Code Online (Sandbox Code Playgroud)

0 ... 5是正确的!数组中只有6个值.

并使用

NSLog(@"%@",aAnimal.animalName);
Run Code Online (Sandbox Code Playgroud)

out函数返回正确的值,当我也将i更改为0时.

iphone sdk objective-c nsmutablearray

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

如何编写打开GitBash shell并在shell中运行命令的批处理文件?

我在Windows 7上尝试使用批处理文件打开GitBash shell并进行git调用.这是我的批处理文件的内容:

REM Open GitBash 
C:\Windows\SysWOW64\cmd.exe /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
REM retrieve archive
git archive master | tar -x -C %~1
REM quit GitBash
exit
Run Code Online (Sandbox Code Playgroud)

我注意到GitBash在下一个命令"git archive ..."之前注销.有人知道我是否可以将命令传递给GitBash以及如何?

麦克风

git shell windows-shell msysgit

41
推荐指数
3
解决办法
6万
查看次数

在powershell中的seperator之后/之前切断字符串中的文本

好的,这就是我要做的事情:我想制作一个小的PowerShell脚本,它接收我的音乐库的每个文件,然后对它做一个哈希值并将其写入一个文件,如下所示:

test.txt; 131 136 80 89 119 17 60 123 210 121 188 42 136 200 131 198

现在,当我开始编写脚本时,我需要先将已经存在的值与我的音乐库进行比较,但为此我只想在切断之后切断所有内容.所以它可以将文件名与文件名(或文件路径)进行比较......但是我很难过如何做到这一点,尝试用$ name = $ name -replace替换";*",""没有...

试图过滤...不知道D:

我真的很感激帮助.

如果你认为我使用了错误的编码语言,告诉我什么会更好,它只是我只使用过C和powershell

string powershell

13
推荐指数
3
解决办法
21万
查看次数

我不完全理解JavaScript线程

在我深入研究这个问题之前.让我说,通过Event Loop,我指的是http://en.wikipedia.org/wiki/Event_loop.这是浏览器实现的东西.欲了解更多信息,请阅读:http://javascript.info/tutorial/further-javascript-features/events-and-timing-depth.

这个问题很难而且很长,所以请尽量忍受!我非常感谢所有答案!


所以.现在,据我所知,在JavaScript中有一个主线程(在大多数浏览器环境中).所以,代码如下:

for (var color = 0x000; color < 0xfff; color++) {
    $('div').css('background-color', color.toString(16));
}
Run Code Online (Sandbox Code Playgroud)

将生成从黑到白的动画,但你不会看到,因为渲染是在代码处理完成后(当下一个滴答发生时 - 浏览器进入事件循环).

如果你想看动画,你可以这样做:

for (var color = 0x000; color < 0xfff; color++) {
    setTimeout(function() {
        $('div').css('background-color', color.toString(16));
    }, 0);
}
Run Code Online (Sandbox Code Playgroud)

上面的例子会生成一个可见的动画,因为setTimeout将一个新事件推送到浏览器Event Loop堆栈,该堆栈将在没有任何运行后进行处理(它进入Event Loop以查看下一步该做什么).

在这种情况下,浏览器似乎将0xfff(4095)事件推入堆栈,其中每个事件都通过它们之间的渲染过程进行处理.那么,我的第一个问题(#1)是什么时候进行渲染?它总是发生在事件循环堆栈中处理两个事件之间吗?


第二个问题是关于我给你的javascript.info网站链接中的代码.

...
  function func() { 
    timer = setTimeout(func, 0)
    div.style.backgroundColor = '#'+i.toString(16)
    if (i++ == 0xFFFFFF) stop()
  }

timer = setTimeout(func, 0)
....
Run Code Online (Sandbox Code Playgroud)

我的问题是,浏览器每次到达div.style. ... = ...线路时都会将新的"渲染"事件推送到事件循环堆栈吗?但是,由于setTimeout-call,它是否首先推送事件?那么,浏览器最终是否像堆栈一样:

setTimeout event
render …
Run Code Online (Sandbox Code Playgroud)

javascript browser event-loop

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

用户进程的有效地址空间是什么?(OS X和Linux)

mmap系统调用的文件说,该函数将失败:

指定了MAP_FIXED,并且addr参数未进行页面对齐,或者所需地址空间的一部分位于用户进程的有效地址空间之外.

我找不到任何地方的文件说什么是一个有效的地址映射.(我有兴趣在OS X和Linux上执行此操作,理想情况下,相同的地址对两者都有效...).

linux macos mmap

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

为什么PostgreSQL对索引列执行顺序扫描?

非常简单的例子 - 一个表,一个索引,一个查询:

CREATE TABLE book
(
  id bigserial NOT NULL,
  "year" integer,
  -- other columns...
);

CREATE INDEX book_year_idx ON book (year)

EXPLAIN
 SELECT *
   FROM book b
  WHERE b.year > 2009
Run Code Online (Sandbox Code Playgroud)

给我:

Seq Scan on book b  (cost=0.00..25663.80 rows=105425 width=622)
  Filter: (year > 2009)
Run Code Online (Sandbox Code Playgroud)

为什么它不执行索引扫描?我错过了什么?

postgresql indexing sequence database-scan

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

为什么C#中的1 && 2是假的?

我对另一个问题感到沮丧.所以我写了这个例子.

在C中,以下是真实的.见演示

int main()
{
printf("%d", 1 && 2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

1
Run Code Online (Sandbox Code Playgroud)

在C#中.这是假的.为什么这是假的?此外,我不明白为什么我需要在这个例子中创建bool运算符,但不是在我的另一个问题,但无论如何.为什么以下是假的?对我来说完全是无稽之谈.

这里描述使得下面的假的逻辑

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            MyInt a=1, b=2;
            bool res=a && b;
            Console.WriteLine("result is {0}", res);
        }

        class MyInt
        {
            public int val;
            public static bool operator true(MyInt t) { return t.val != 0; }
            public static bool operator false(MyInt t) { return t.val == 0; …
Run Code Online (Sandbox Code Playgroud)

c# boolean boolean-operations

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

重载的方法组参数会混淆重载决策?

以下调用重载Enumerable.Select方法:

var itemOnlyOneTuples = "test".Select<char, Tuple<char>>(Tuple.Create);
Run Code Online (Sandbox Code Playgroud)

失败并出现歧义错误(为清晰起见,删除了名称空间):

The call is ambiguous between the following methods or properties: 
'Enumerable.Select<char,Tuple<char>>
           (IEnumerable<char>,Func<char,Tuple<char>>)'
and 
'Enumerable.Select<char,Tuple<char>>
          (IEnumerable<char>, Func<char,int,Tuple<char>>)'
Run Code Online (Sandbox Code Playgroud)

我当然可以理解为什么明确指定类型参数会导致歧义(两个都会应用重载),但是在这样做后我没有看到.

对我来说似乎很清楚,目的是调用第一个重载,方法组参数解析为Tuple.Create<char>(char).第二个重载不应该适用,因为没有任何 Tuple.Create重载可以转换为期望的Func<char,int,Tuple<char>>类型.我猜测编译器很困惑Tuple.Create<char, int>(char, int),但它的返回类型是错误的:它返回一个二元组,因此不能转换为相关Func类型.

顺便说一句,以下任何一个使编译器开心:

  1. 为method-group参数指定一个type-argument :( Tuple.Create<char>也许这实际上是一个类型推断问题?).
  2. 使参数成为lambda表达式而不是方法组:x => Tuple.Create(x).(在Select通话中使用类型推断很好).

不出所料,尝试以Select这种方式调用其他重载也会失败:

var itemIndexTwoTuples = "test".Select<char, Tuple<char, int>>(Tuple.Create);
Run Code Online (Sandbox Code Playgroud)

这里的确切问题是什么?

c# method-group overload-resolution c#-4.0

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

Scala:将特征与私人领域混合

这不是一个问题,而是让我感到非常兴奋!我写这个小例子只是为了证明相反 - 我预计编译器错误或其中一个值(111或222,我不确定).

scala> trait T1 { private val v = 111; def getValueT1 = v }
scala> trait T2 { private val v = 222; def getValueT2 = v }
scala> class T12 extends T1 with T2                        
scala> val t = new T12                                     
scala> t.getValueT1                                        
res9: Int = 111
scala> t.getValueT2                                        
res10: Int = 222
Run Code Online (Sandbox Code Playgroud)

为什么不v被覆盖?当然,这只有vs是私有的,但仍然是有效的.

scala multiple-inheritance traits

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