小编Has*_*kun的帖子

C中的atoi功能无法正常工作

有人可以解释为什么atoi函数不能与超过9位的nuber一起工作.
例如:

我输入123456789,程序说123456789,但是当我输入12345678901程序时说-519403114 ...感谢您的帮助.

int main ()
{
    int i;
    char szinput [256];
    printf ("Enter a Card Number:");
    fgets(szinput,256,stdin);
    i=atoi(szinput);
    printf("%d\n",i);
    getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c atoi

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

VS Code C++:不准确的系统 includePath 错误(wchar.h、boost/lambda/lambda.hpp)

在 Mac OS Mojave 10.14.6 上使用 VS Code 处理一个奇怪的包含问题。

#include errors detected. Please update your includePath. Squiggles are disabled for this translation unit (/Users/ajm/Projects/restaurant/cpp/sim/src/main.cpp).C/C++(1696)
cannot open source file "wchar.h" (dependency of "iostream")
Run Code Online (Sandbox Code Playgroud)

请注意,这种情况是在我将 MacOS CommandLineTools 更新为xcode-select --install.

我的编译器路径在 VS Code 中是

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
Run Code Online (Sandbox Code Playgroud)

我的 includePath 是

${workspaceFolder}/**
${BOOST_ROOT}/**
Run Code Online (Sandbox Code Playgroud)

当我添加/Library/Developer/CommandLineTools/usr/include/c++/v1/**到我的 includePath 并将编译器路径更改为 时/usr/bin/g++,STL 包含问题消失了,我得到了这个:

cannot open source file "boost/lambda/lambda.hpp"
Run Code Online (Sandbox Code Playgroud)

请注意,当我从命令行构建程序时,它运行得很好;一切都按其应有的样子被发现。

这是我的 Makefile:

PROG = sim
CC = g++
CPPFLAGS = -g -Wall -I$(SDIR) -I$(ODIR) -I$(BOOST_ROOT)
ODIR …
Run Code Online (Sandbox Code Playgroud)

c++ g++ clang++ visual-studio-code

4
推荐指数
1
解决办法
3437
查看次数

在C程序中使用未完成进程的输出

我在linux环境中使用tcpstat.我想在C程序中捕获它的输出,即使它还没有完成.我尝试使用popen()函数,但它只能在程序完成处理输出.我想在运行时处理tcpstat的输出,当它在标准输出上打印时.我怎么做的?

例如,

$ tcpstat -i wlan0 1
Time:1297790227 n=2 avg=102.50  stddev=42.50    bps=1640.00
Time:1297790228 n=11    avg=86.36   stddev=19.05    bps=7600.00
Time:1297790229 n=32    avg=607.97  stddev=635.89   bps=155640.00
Time:1297790230 n=13    avg=582.92  stddev=585.55   bps=60624.00
Run Code Online (Sandbox Code Playgroud)

上面的输出一直持续到无穷大.因此,当tcpstat将某些内容输出到stdout时,我想在C程序中处理输出.

感谢致敬,

Hrishikesh Murali

c linux

3
推荐指数
2
解决办法
299
查看次数

如何在白天拆分Dancer错误日志?

我想在我的网站上使用舞者和明星.我成功地将错误日志设置到文件中.当然我可以运行脚本来每天移动错误日志.但我只是想知道是退出方法还是cpan模块来解决问题.谢谢〜

perl logging dancer

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

float或double值如何存储在C中的变量中?

我正在读的方式,整数如何存储在c中的变量中,最后一位用于整数的符号,其余的位用于存储数字.

但是如果我们在c中取一个double变量和long int变量,两者都有4个字节的大小,但是float可以存储非常大的数字,最大可以达到10 38,但是相同大小的long int不能存储这么大的值.


我想了解浮动存储中使用的机制.

c floating-point storage

3
推荐指数
2
解决办法
645
查看次数

套接字的有效性

我使用以下代码行创建了一个套接字,我得到一个有效的套接字,并在客户端和服务器机器之间建立连接.由于网络干扰或任何其他原因,套接字是否可能无效.

如果是这样,我们如何检查套接字是否有效.

    SOCKET SocServer; 

    //To Set up the sockaddr structure 
    ServerSock.sin_family = AF_INET; 
    ServerSock.sin_addr.s_addr = INADDR_ANY     
    ServerSock.sin_port = htons(PortNumber);//port number of 5005 

    // To Create a socket for listening on PortNumber 
    if(( SocServer = socket( AF_INET, SOCK_STREAM, 0 )) == INVALID_SOCKET ) 
    { 
        return FALSE; 
    } 

    //To bind the socket with wPortNumber 
    if(bind(SocServer,(sockaddr*)&ServerSock,sizeof(ServerSock))!=0) 
    { 
        return FALSE; 
    } 

    // To Listen for the connection on wPortNumber 
    if(listen(SocServer,SOMAXCONN)!=0) 
    { 
        return FALSE; 
    }
Run Code Online (Sandbox Code Playgroud)

我知道我可以检查INVALID_SOCKET,换句话说就是套接字是0.还有其他出路,因为我的SocServer将有一个值2500,我想检查这个套接字是否有效.

c++ sockets windows winsock

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

char*(64位(Windows 7))

假设我有代码:

// My.cpp
#include <iostream>

int main( int argc, char ** argv ) 
{
   if ( argc > 1 )
      std::cout << argv[ 1 ] << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

(我使用MVSC++ 2008)

当我在cmd.exe中运行我的程序时:

My.exe argument
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

a r g u m e n t 
Run Code Online (Sandbox Code Playgroud)

为什么?????

c++

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

Zlib内核模块

我正在尝试实现一个使用zlib的内核模块,那么有没有可用于linux-2.6.17.8的Zlib模块?

如果我需要将zlib的源文件转换为内核空间,我需要替换malloc,函数调用,断言等?

c kernel zlib kernel-module linux-kernel

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

数据库连接是否在Redirect上自动关闭?

我在ASP.NET中做一个项目.

我想知道在Web应用程序中从一个页面跳到另一个页面时,连接是否会自动关闭.

或者会显示错误MAX POOL SIZE WAS REACHED

asp.net database-connection

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

在Vim中使用Ctrl + [而不是ESC

我想训练自己以避免ESC按下按钮退出插入模式.我想用Ctrl+ [代替.但是我把它放在我的.vimrc中之后

inoremap <ESC> <NOP>
Run Code Online (Sandbox Code Playgroud)

我不能使用Ctrl + [也是.我怎样才能解决这个问题?

vim

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