小编Mar*_*ner的帖子

是否可以从stdin输入指针的地址?

不久之前,我有一个简单的进程间通信的想法:一个进程向指针输出一个地址,我将其复制到另一个进程的输入,并更改原始变量.

我这样实现了:

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    bool p;
    cin>>p;
    if(p){
        int n;
        n=0;
        cout<<&n;
        cin.get();
            cin.get();
            cout<<n;
        }else{
            int *point,n;
            scanf("%p",&point);
            cout<<point;
            cin>>n;
            *point+=n;
        }
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

我使用scanf是因为cin抱怨,并且不会编译.我尝试用两个进程运行它,但在我启动第二个实例后,输入指针的地址,如第一个输出的那样,它就冻结了.因为我只能访问Windows,所以我不知道它是否有SIGSEGV,或者它是否做了完全不同的事情.

是不是只是我试图改变另一个进程崩溃的变量的值,还是其他阻止我的东西呢?

c++ windows interprocess

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

如果不告知,会使ada程序的输出缩进什么?

我目前正在learning.adacore.com上进行Ada教程,现在是第二个示例:读取和输出整数。由于复制粘贴适用于不想学习语法的人,因此我手动键入了大部分代码(其中一些是由gnat-gps生成的,但现在使用的是vim)。

我编译并运行了该程序,令人惊讶的是,输出的第二行大约缩进了一个制表符。为什么?

这是代码:

With Ada.Text_IO;
Use Ada.Text_IO;
With Ada.Integer_Text_IO;
use Ada.Integer_Text_IO;

procedure Main is
    N : Integer;
begin
   --  Insert code here.
    Put("Enter an integer value: ");
    Get(N);
    if N>0 then
        Put (N);
        Put_Line(" is a positive number");
    end if;
end Main;
Run Code Online (Sandbox Code Playgroud)

(如何获取语法突出显示?)

以下是输出示例(第一个输入):

Enter an integer value: 1
          1 is a positive number
Run Code Online (Sandbox Code Playgroud)

format ada output

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

父线程何时与非全局范围的 ada 任务类型变量同步?

我当时正在编写一些多线程 Ada 网络代码,其中涉及并行接受和处理多个连接。这是使用 Ada 任务的理想情况,不是吗?具体来说,多个任务类型变量,在循环中启动。

好吧,我做了这样的事情:

with Ada.Text_IO;
use Ada.Text_IO;

Procedure foo is
   task type handler is
      entry Start(I: Integer);
   end handler;
   
   task body handler is
      task_index: Integer;
   begin
      accept Start(I: Integer) do
         task_index:=I;
      end Start;
      for I in 1..5 loop
         Put_Line("Task "&task_index'Image&": "&I'Image);
      end loop;
   end handler;

begin -- foo

   for t in 1..5 loop
      declare
         bar: handler;
      begin
         bar.Start(t);
      end;
   end loop;
end foo;
Run Code Online (Sandbox Code Playgroud)

期望任务一旦接受条目start就会并行执行。然而,如本例所示,主任务依次等待每个任务完成执行:

$ gnat make foo
$ ./foo
Task  1:  1
Task  1: …
Run Code Online (Sandbox Code Playgroud)

concurrency multithreading scope ada task

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

c ++检查char是元音还是辅音的最快方法

我有一个问题,涉及使用回溯查找具有各种规则的许多“单词”(它们不必是真实的)。一些规则涉及我可以在彼此之后拥有的元音数量。

我知道我可以使用 switch 或带有元音数组的 for 循环,然后说所有不是元音的字母字符都是辅音,但是由于这个函数可能会被调用几千次,我想它要尽可能快。

检查字符是元音还是辅音的最快方法是什么?

c++ optimization character

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

在perl中获取stdin输入有多少种方法?

我一直在学习perl,并且发现座右铭很有趣.它说有多种方法可以做任何事情.我知道你可以使用printsay输出东西,但我没有找到任何其他方式来读取输入而不是使用预定义的文件指针式的东西.

还有其他方法吗?

io perl options

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