小编rsk*_*k82的帖子

c ++中的字符串运算符重载 - 我真的不明白

这是我的代码:

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

string& operator+(string & lhs, int & rhs) {
    char temp[255];
    itoa(rhs,temp,10);
    return lhs += temp;
}

int main() {
  string text = "test ";
  string result = text + 10;
}
Run Code Online (Sandbox Code Playgroud)

结果是:

test.cpp: In function 'int main()':
test.cpp:15:26: error: no match for 'operator+' in 'text + 10'
test.cpp:15:26: note: candidates are:
/.../
Run Code Online (Sandbox Code Playgroud)

应该是test 10.

c++ operator-overloading

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

为什么lpstrFile在内存中返回地址而不是OPENFILENAMEW结构中的char数组?

这段代码应该编译没有错误,你应该链接-lcomdlg32对话框.程序返回:0x22fcd8或者68如果我使用指针.并且应该(我认为)在对话框中返回文件用户类型的名称.

#include <windows.h>
#include <iostream>

int main() {
  wchar_t szFileName[MAX_PATH] = {0};
  OPENFILENAMEW ofn;
  ZeroMemory(&ofn, sizeof(ofn));
  ofn.lStructSize = sizeof(OPENFILENAME);
  ofn.nMaxFile = MAX_PATH;
  ofn.lpstrFile = szFileName;
  GetSaveFileNameW(&ofn);

  using namespace std;
  cout << szFileName << endl;
  cout << *szFileName << endl; // also a number not a string
}
Run Code Online (Sandbox Code Playgroud)

c++ winapi buffer

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

如何在D源代码中包含文件,就像在C中完成一样

那是:

#include "mySnippet.h"
Run Code Online (Sandbox Code Playgroud)

D甚至有这样的事吗?

使用import "myInclude.d"procuces:

test.d(5): Error: Identifier expected following import
test.d(5): Error: ';' expected
Run Code Online (Sandbox Code Playgroud)

d include

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

如何获取锁定文件的大小?

我试过用这种方法:

#include <windows.h>
#include <iostream>

int main() {
  LARGE_INTEGER size;
  HANDLE hFile = CreateFile("c:\\pagefile.sys", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  if (hFile == INVALID_HANDLE_VALUE) return(1);
  GetFileSizeEx(hFile, &size);
  CloseHandle(hFile);
  std::cout << size.QuadPart << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

但正如你所看到的那样,我指向被锁定的"pagefile.sys",并且程序遇到INVALID_HANDLE_VALUE.但非系统应用程序可以查看锁定文件的大小.例如,总指挥官给我大约1GB,它必须从某个地方获得这个值(更不用说简单地右键单击该文件,但这是系统进程,因此文件没有锁定它).那么,那个案子有没有winapi电话?

我已更新代码以包含建议的更正,但它仍然无效:

#include <windows.h>
#include <iostream>

int main() {
  LARGE_INTEGER size;
  HANDLE hFile = CreateFile("c:\\pagefile.sys", 0, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  std::cout << "GetLastError: " << GetLastError() << std::endl;
  //says: 5 (0x5) ERROR_ACCESS_DENIED
  if (hFile == INVALID_HANDLE_VALUE) return(1);
  GetFileSizeEx(hFile, &size);
  CloseHandle(hFile);
  std::cout << size.QuadPart …
Run Code Online (Sandbox Code Playgroud)

c++ winapi locking file

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

有没有办法检查变量是否在编译时声明?

我的意思是这样的情况(这当然是假代码/想法/因为我知道它不像那样工作):

int main() {
  int my_int = 42;
  #ifdef my_int
    my_int = 43;
  #else
    int my_int = 43;
}
Run Code Online (Sandbox Code Playgroud)

我知道c/c ++程序看不到变量的名称,也无法判断它是否已设置但是编译器可以做到,我在这里问是否有任何方法可以将编译器指向给定的操作,例如省略或插入代码片段当遇到同一块中存在重复声明的情况时的代码.

c c++

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

如何从给定索引strcat或strcopy ac字符串?

例如有字符串:

Hello World!
Run Code Online (Sandbox Code Playgroud)

如何使strcopy功能从位置6起作用并仅复制World!到另一个缓冲区?

c c-strings

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

如何将所有变量传递给autoit中的函数?

就像func_get_argsPHP中一样,我发誓我已经在文档中的某处看到了它...

autoit

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

是否有可能将iostream传递给函数?

我的意思是说:

每个人都知道这种将流重定向到输出的方法:

cout << "sometext"
Run Code Online (Sandbox Code Playgroud)

但是可以将该流传递给这样的函数:

my_function() << "sometext";
Run Code Online (Sandbox Code Playgroud)

c++ parameters iostream function

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

在与负数进行比较时,在程序中迷路'\ 342'

每当我与负数GCC进行比较时,我都会看到:

error: stray '\342' in program
   if ( -4 < ÔÇô3 ) return 1;
   ^
compilation terminated due to -Wfatal-errors.
Run Code Online (Sandbox Code Playgroud)

码:

int main() {
  if ( -4 < –3 ) return 1;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ gcc compiler-errors

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