标签: stream

算术指针和fstream C++

我正在使用内存缓冲区写入文件.我将每个记录复制到内存缓冲区,然后将其刷新到磁盘.

码:

    char * OutBuffer;
    char *pt;
    OutBuffer = new char(BufferSize);
    pt = OutBuffer;

    for (int i=0; i<(FileSize / RECORD_SIZE); i++){
        if (((i % recordsPerBlock)==0) && (i>0)){
           FileSortHandle->write(OutBuffer, BufferSize);
           pt = OutBuffer;
        }
        else{
           memcpy(pt, minRecord, RECORD_SIZE);
           pt = pt + RECORD_SIZE;
        }
           minRecord = nullptr;
    }
Run Code Online (Sandbox Code Playgroud)

当我调用"FileSortHandle-> write(OutBuffer,BufferSize);" VS显示:

"Windows在STL_Test2.exe中触发了一个断点.

这可能是由于堆的损坏,这表明STL_Test2.exe或其加载的任何DLL中存在错误.

这也可能是由于用户在STL_Test2.exe具有焦点时按下F12.

输出窗口可能包含更多诊断信息."

有人能帮帮我吗?

c++ pointers stream

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

可可,免费桥接和ARC

我想做一个简单的TCP客户端.但我收到一个错误.当我做 inputStream = (NSInputStream *)readStream;,outputStream = (NSOutputStream *)writeStream;它建议我引入前缀__bridge或_ bridge _transfer.

首先,它是什么?第二,我试过两个,仍然无法发送消息.我按照本教程,我也发送了消息和流.我安装了Wireshark并且已经调用了send消息,但它没有向ip发送任何数据包.

我刚刚在这里发布了initNetworkCommunication,因为我收到了"网桥"错误.

- (void) initNetworkCommunication {

    CFReadStreamRef readStream;
    CFWriteStreamRef writeStream;
    CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"54.xxx.xxx.xxx", 1333, &readStream, &writeStream);

    inputStream = (NSInputStream *)readStream;
    outputStream = (NSOutputStream *)writeStream;
    [inputStream setDelegate:self];
    [outputStream setDelegate:self];
    [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    [inputStream open];
    [outputStream open];

}
Run Code Online (Sandbox Code Playgroud)

服务器很好,因为我已经尝试了示例代码,我收到了回复.

你能帮助我吗?

cocoa inputstream objective-c stream tcpclient

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

JAVA:处理插座断开连接

  1. 两台计算机通过套接字连接.如果服务器/客户端从它们的末端关闭连接(即关闭InputStream,OutputStreamSocket),那么如何通知另一端断开连接?有一种我知道的方法 - 尝试从中读取InputStream,这会抛出IOExceptionif连接关闭,但还有其他方法可以检测到这种情况吗?
  2. 另一个问题,我在互联网上看了问题,看到inputStream.available() 并没有解决这个问题.这是为什么?

附加信息:我要求采用另一种方式,因为如果我必须尝试读取InputStrem断开连接,我的项目将变得难以处理 .

java sockets inputstream outputstream stream

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

virusscan存储在磁盘上之前的流

我找到了很多关于如何扫描上传文件的解决方案.我的问题是:在将流保存为文件后,Internet上的每个解决方案都会开始扫描.

我的问题:文件可以在存储在磁盘上时损坏服务器吗?如果是这样,是否可以在将上传的流存储在硬盘上之前对其进行病毒检查?

c# upload virus file stream

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

连续流中具有相等概率的随机数

你有一连串的数字流进来.你没有足够的空间来存储它们.但是设计一种机制,通过该机制,您可以在任何时间选择具有相同概率的任何数字.

algorithm stream

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

在C#中使用Stream.Readbyte和stream.Writebyte进行读写

以下代码有什么问题?

        Stream inputstream = File.Open("e:\\read.txt", FileMode.Open);
        Stream writestream = File.Open("e:\\write.txt", FileMode.OpenOrCreate);

        do
        {
            writestream.WriteByte((byte)inputstream.ReadByte());
        }
        while (inputstream.ReadByte() != -1);
Run Code Online (Sandbox Code Playgroud)

read.txt有"快速的棕色狐狸跳过懒狗".

而write.txt文件包含的内容很少,只需"teqikbonfxjme vrtelz o".

c# stream

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

编写一个像"std :: cout"一样工作的简单函数,但在结尾添加一个换行符

在C++中有一个名为的标准库函数cout,它允许我将文本发送到控制台.我相信你知道的.

#include <iostream>
using std::cout;
cout << "Some Text " << 15 << " Other Text";
Run Code Online (Sandbox Code Playgroud)

要在最后做一个换行,我需要使用endl.

cout << "Some Text " << 15 << " Other Text" << endl;
Run Code Online (Sandbox Code Playgroud)

我怎样才能编写一个coutl行为相似的函数,cout但也添加了一个像?我想使用与使用相同的语法cout,尤其是<<运算符.

coutl << "Some Text " << 15 << " Other Text"; // coutl should add a linebreak
Run Code Online (Sandbox Code Playgroud)

c++ stl cout function stream

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

便携式方式从stdin读取数据而不会阻塞

是否有一种可移植的方式来stdin无阻塞地读取数据,或检查数据是否可以无阻塞地读取?请记住,stdin可以通过另一个进程传输,而不仅仅是终端/键盘输入.

最好只使用stdlib.h或stdio.h中的ANSI C函数,但使用POSIX函数也非常便携.

此外,我不确定这一点,但有一些论坛帖子,他们说select()在实践中不适用于Windows.

c stdin asynchronous stream

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

进程挂在java中,即使我已经读取(输入/错误)流,waitFor()也会永远占用

我在使用Java运行多个进程时遇到问题.

我有一个从向量运行进程的循环cmds,它当前运行第一个进程,然后第二个进程挂起.

   ProcessBuilder proc = null;
   for (String cmd:cmds){
       proc = new ProcessBuilder(cmd.split("\\s"));
       Process p = proc.start();

       //Handle streams

       //in
       Scanner stdin = new Scanner(p.getInputStream());
       while(stdin.hasNextLine()){
            System.out.println(stdin.nextLine());
       }
       //err
       Scanner stderr = new Scanner(p.getErrorStream());
       while(stderr.hasNextLine()){
             System.out.println(stderr.nextLine());
       }
       //wait
       p.waitFor();
   }
Run Code Online (Sandbox Code Playgroud)

这个答案对我来说显然不起作用,因为我从每个进程的InputStream和ErrorStream中读取过.我有什么误会?

我怎样才能解决这个问题?

注意:我删除了我拥有的try块,因为它在这个示例代码中没有用处

编辑

 proc = new ProcessBuilder(cur_string.split("\\s"));
 proc. redirectErrorStream(true);
 final Process p = proc.start();//Runtime.getRuntime().exec(cur_string);
 //Handle streams
 //in
 new Thread(new Runnable(){
           public void run(){
                Scanner stdin = new Scanner(p.getInputStream());
                while(stdin.hasNextLine()){
                            System.out.println(stdin.nextLine());
                }
                stdin.close();
                }
        }).start();

  //wait
  p.waitFor();
Run Code Online (Sandbox Code Playgroud)

java process stream

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

任何在C++流上执行printf的库?

有谁知道std::printf在标准C++流上实现功能的库?我正在寻找一个允许我写的操纵器:

std::cout << ns::stream_printf("There are %d cookies in %d jars\n", 
                                num_cookies, num_jars);
Run Code Online (Sandbox Code Playgroud)

使用变量模板(或模拟它们)的合理实现甚至可以提供动态类型安全性,即格式错误的格式字符串的异常,而不是程序崩溃.

c++ printf stream

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