我的应用程序是在一个月前在Delphi 7中编写的.现在我想将float str值(如12.5)转换为扩展,但delphi会引发错误.
调试器异常通知
Project Educatee.exe引发异常类EConvertError,消息''12 .5'不是有效的浮点值'.流程停止了.使用"步骤"或"运行"继续.
相同的功能在新应用程序中正常工作
代码只是var x:Extended; 以及X:= strToFloat('12 .5')的任何地方;
我遇到了StrToFloat常规问题.我在Windows Vista上运行Delphi 7,区域格式设置为德语(奥地利)
如果我运行以下代码 -
DecimalSeparator:='.';
anum:=StrToFloat('50.1123');
edt2.Text:=FloatToStr(anum);
Run Code Online (Sandbox Code Playgroud)
当我将字符串转换为浮点数anum变为50,1123时,当我将其转换回sting时它变为'50 .1123'
为什么当我将字符串转换为浮点数时,数字会以小数点而不是逗号作为小数点分隔符出现.
谢谢
科林
声明我喜欢的局部变量时:
int i;
Run Code Online (Sandbox Code Playgroud)
并且您使用此变量,您将得到未定义的行为,因为我尚未初始化.但我持有一个值,一个"垃圾"值,这个值来自哪里?它来自记忆中的随机位置吗?
我理解这些使用"const"的技巧的抽象功能是为了安全问题,不要让程序员无意中改变事物,或者不要故意搞乱事情,或者在同一个项目的不同程序员之间意外混淆(如果我错了,请纠正我).
不清楚的是:
我想创建一个文件并将“A”写入其中(ascii 为 65 == 01000001)。奇怪的是,无论 的值是多少std::string binary,其中总是写有字母myfile.txtP。
std::string binary = "01000001";
std::string file = "myfile.txt";
FILE* f;
f = fopen(file.c_str(), "wb");
fwrite(&binary, 1, 1, f);
fclose(f);
Run Code Online (Sandbox Code Playgroud)
执行此代码后,我使用命令读取二进制数据xxd -b myfile,得到以下结果:
00000000:01010000
您发现这段代码有问题吗?
每次我使用其中一个新类C++ 11提供类似chrono.h并使用GCC编译它时它警告我C++ 11函数仍然是实验性的,必须启用一个特殊标志才能使用.
它在2014年结束时写到这一点,为什么在至少3.5年后GCC仍将C++ 11标记为"实验性",经过这些年,C++ 11为我们提供的一些功能还没有实现?
如果是这样的话,怎么样?
代码:
#include <chrono>
#include <thread>
int main()
{
std::this_thread::sleep_for(std::chrono::milliseconds(3000));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译行:
g++ Source.cpp -o test.exe
GCC版本:g ++(x86_64-posix-seh-rev0,由MinGW-W64项目构建)4.9.2版权所有(C)2014 Free Software Foundation,Inc.
海湾合作委员会吐出:
C:/Program Files/mingw-w64/x86_64-4.9.2-posix-seh-rt_v3-rev0/mingw64/x86_64-w64- mingw32/include/c++/bits/c++0x_warning.h:32:2: error: #error This file requires G compiler and library support for the ISO C++ 2011 standard. This support is curr ently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 comp iler options.
Visual Studio 2015 告诉我它找不到WSASetSocketSecurity.
该dll存在并且还包含似乎没问题。
我的包括:
windows.h
stdio.h
Wincrypt.h
Ws2tcpip.h
mstcpip.h
iostream
winsock2.h
rpc.h
ntdsapi.h
tchar.h
pragma comment(lib,"ws2_32.lib")
pragma comment(lib,"fwpuclnt.lib")
pragma comment(lib,"ntdsapi.lib")
using namespace std;
Run Code Online (Sandbox Code Playgroud) 我在生产服务器上遇到了很多问题,但是我想在exe崩溃时用详细日志转储文件.
我找到了procdump工具.你能建议手动崩溃exe的代码c#,这样可以检查转储日志中获得的信息类型.
我正在尝试学习c/c ++套接字编程但是绑定函数正常工作或者没有返回它应该返回的内容,而不是"int"它返回"__bind"我不知道什么是错的,我已经搜索了该怎么做没有出来
请帮忙
Server::Server()
: sock_fd(0)
{
// number used as index in to the vector of client fd
num = 0;
clino.reserve(10);
clientfd.reserve(10);
if( (sock_fd = socket(AF_INET,SOCK_STREAM,0) ) < 0)
{
perror("Server constructor : cannot open socekt");
}
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(TCP_PORT);
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
//error returning __bind<int&, sockaddr*, unsigned long>
int b = bind(sock_fd,(sockaddr *)&servaddr, sizeof(servaddr));
//this bind function is acting up, dosent want to let me check for errors lol
printf("printing..\n");
}
int …Run Code Online (Sandbox Code Playgroud) 我有两个指针:pA和pB.它们指向两个大的哈希映射对象.当pB指向的哈希映射完全更新时,我想交换pB和pA.
在C++ 17中,如何快速交换它们并保证线程安全?原子?我是c ++ 17的新手.
每次我使用相同的参数执行cal()函数时,都会得到不同的输出。函数g()始终为相同的输入计算相同的结果。线程是否覆盖任何变量?
void cal(uint_fast64_t n) {
Bint num = N(n);
Bint total = 0, i, max_size(__UINT64_MAX__);
for(i = 1; i <= num; i+= max_size){
#pragma omp parallel shared(i,num,total)
{
int id = omp_get_thread_num();
int numthreads = omp_get_num_threads();
Bint sum(0), k;
for(uint64_t j = id; (j < __UINT64_MAX__); j+=numthreads){
k = i+j;
if(k > num){
i = k;
break;
}
sum = sum + g(k);
}
#pragma omp critical
total += sum;
}
}
std::cout << total << std::endl;
}
Run Code Online (Sandbox Code Playgroud) 当我想改变数组的最后一个元素时,我总是使用[-1]作为最后一个元素。
#include <iostream>
using namespace std;
int main(){
int arr[10]{};
arr[0]=10;
arr[-1]=100;
cout<<arr[-1]<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然后我的老师说:“ C ++不支持数组的这种行为。我应该使用arr [9]作为最后一个元素,而“ arr [-1] = 100”实际上将在其中一个元素之前的区域中存储1000。数组开始。这会导致崩溃,因为该值超出了数组的范围。” 有人可以解释为什么吗?
注意:我是python程序员。当我在列表中使用-1时,我在python中没有问题。C ++有不同的条件吗?