小编Rob*_*obᵩ的帖子

Web浏览器不解释通过unsigned char数组传递的图像

我想要做的基本上是通过套接字捕获浏览器的HTTP GET请求并将该请求发送到Internet,然后捕获回复并将其发送回浏览器.当转移仅由文本组成时,每件事都完美无缺.但下载图像时.浏览器给出错误"无法显示图像,因为它包含错误".任何帮助将不胜感激.

#include "cc352.h"
#include <arpa/inet.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

int
main(int argc, char **argv)
{
int                 listenfd, connfd,weblin,webcon,webwrite,n,x,y,w,w1;
socklen_t           len,wlen;
struct sockaddr_in  servaddr, cliaddr , webservad , webcliad;
unsigned char       buff[3072] , buff2[3072] ,ext[5] ,wbuff[100000];
time_t              ticks;
int                 yes = 1;
const char          *ptr;


if ( (listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ){
    fprintf(stderr, "socket creation failed\n");
    exit (1);
     }

bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family      = AF_INET;

if (inet_pton(AF_INET,"127.0.0.1", &servaddr.sin_addr) <= 0){
    printf("inet_pton error for %s", argv[1]);
    return …
Run Code Online (Sandbox Code Playgroud)

c sockets arrays network-programming packet-capture

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

如何防止终端滚动

我正在用C++编写一个简单的程序,以便在终端窗口中运行.我希望输出文本锁定在屏幕上的位置.我希望能够在一行文本中更改一行文本或一些字符,同时保持其上方和下方的其他行是静态的,而不是每个新行出现在屏幕底部并推动所有内容.我知道我已经在终端中看到过这个,我相信它是用C++完成的,但我找不到任何关于它的文档.我甚至无法想到这种类型的显示器可能被称为什么.我的google fu让我失望了; 请帮忙.如果你能告诉我使用哪些命令/库,那就太好了,但是即使能够告诉我用C++以外的编程语言完成这些命令会让我比现在更多.

c++ ncurses

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

我的for-loop并没有给我所有数字

我有一个非常简单的代码,但它仍然无法按我想要的方式工作.它应该让我回到它所经历的所有n,但我只得到最后一个:"10000001".我错了什么?

#include <iostream>

using namespace std;

int main()
{
  int n=1000;
  int i=1;
  for(;i<3;n*=100,i++);
    {
    cout <<  ++n << "\n";
    int* temp = new int[n];
    delete [] temp;
    }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ for-loop numbers

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

cin >>不能使用getline()

#include <iostream>
#include <string>
using namespace std;

int main () {
  string str;
  int age;
  cout << "Please enter age: ";
  cin>>age;
  cout << "Please enter full name: ";
  getline (cin,str);
  cout << "Thank you, " << str << ".\n";
}
Run Code Online (Sandbox Code Playgroud)

当我使用uperator >>输入整数时,为什么函数getline()不起作用?int输入有什么更好的用途?

c++ cin getline

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

将const ref分配给非const对象

在下面的代码中,我们返回一个const对象并将其收集在非const对象中,并且它仍然可以编译而不会出现错误或警告.

class foo
{
    int i;
public:
    const foo& call() const
    {
        return *this;
    }
};

int main()
{
    foo aa, bb;
    bb = aa.call();
}
Run Code Online (Sandbox Code Playgroud)

c++

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

无限的Windows消息循环

我的程序中有这个消息循环:

while (true) {
    if (PeekMessage(&msg, window, 0, 0, PM_REMOVE)) {
        if (msg.message == WM_QUIT) {
            MessageBox(NULL, L"Quit", L"", 0);
            break;
        }
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    } else {
        Render();
    }
}
Run Code Online (Sandbox Code Playgroud)

这个循环永远不会结束 即使主窗口消失,它也不会显示消息框.这是WndProc代码:

switch (msg) {

    case WM_CLOSE :
        DestroyWindow(hwnd);
        break;

    case WM_DESTROY :
        PostQuitMessage(0);
        break;

    default :
        return DefWindowProc(hwnd, msg, wParam, lParam);
        break;
}

return 0;
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?我真的把我的头发拉了出来.

c c++ windows winapi message

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

赋值运算符和条件语句

我很难理解以下代码buffer[i] = arr ? arr[i] : 0;.这是否意味着如果arr包含任何东西然后它等于buffer[i],如果不包含它等于0

#include <iostream>
using namespace std;
int main ()
{
    int arr[5]={11,22,33,44,55};
    int * buffer;
    buffer = new int [5];

    for(int i=0;i<5;i++){
        buffer[i] = arr ? arr[i] : 0;//true/falls
        cout<<buffer[i]<<",";
    }
    cout<<endl;

    int arr2[5]={};
    int * buffer2;
    buffer2 = new int [5];

    for(int i=0;i<5;i++){
        buffer2[i] = arr2 ? arr2[i] : 0;//true/falls
        cout<<buffer2[i]<<",";
    }
    cout<<endl;
}
Run Code Online (Sandbox Code Playgroud)

c++ if-statement dynamic

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

更改.c文件的注释时,scons仍然重新编译它?

据说scons使用MD5签名作为默认决策来确定源文件是否需要重新编译.例如,我有SConstruct如下:

Library('o.c')
Run Code Online (Sandbox Code Playgroud)

我的oc是:

$ cat o.c
    /*commented*/
    #include<stdio.h>
    int f(){
      printf("hello\n");
      return 2;
    }
Run Code Online (Sandbox Code Playgroud)

运行scons并删除注释行,再次运行scons.我希望scons不应该再次编译它,但实际上它是:

gcc -o o.o -c o.c
scons: done building targets.
Run Code Online (Sandbox Code Playgroud)

如果我更改SConstruct文件添加一行:

Decider('MD5').
Run Code Online (Sandbox Code Playgroud)

还是一样的结果.

我的问题是:如何确保对于scons,在更改源文件注释时,它们不会重新构建?

谢谢!

linux rebuild dependencies gcc scons

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

unix - 仅从目录中删除文件

用目录结构说,例如:

toplev/
      file2.txt
      file5.txt
      midlev/
            test.txt
            anotherdirec/
                         other.dat
                         myfile.txt
                         furtherdown/
                                    morefiles.txt
                         otherdirec/
                                    myfile4.txt
                                    file7.txt
Run Code Online (Sandbox Code Playgroud)

你会如何从'anotherdirec'中删除所有文件(不是目录而不是递归)?在这个例子中,它将删除2个文件(other.dat,myfile.txt)

我在'midlev'目录中尝试了下面的命令,但是它给出了这个错误(find: bad option -maxdepth find: [-H | -L] path-list predicate-list):

find anotherdirec/ -type f -maxdepth 1
Run Code Online (Sandbox Code Playgroud)

我正在运行SunOS 5.10.

unix bash shell perl solaris

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

从.txt文件中读取数据并保存到矢量

这是一个非常简单的问题:如何读取.txt文件并使用c ++保存到向量?我将9个数据存储在由tab分隔的txt文件中,我想将其保存到三个不同的Vector(我使用的是Eigen库).9个数据是这样的:

 -468.01    198.74  -123.9  -471.67 195.41  46.878  -471.39 111.84  45.518 
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?提前致谢!

c++

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