相关疑难解决方法(0)

为什么"使用命名空间std"被认为是不好的做法?

我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::coutstd::cin直接代替.

为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?

c++ namespaces using-directives std c++-faq

2486
推荐指数
36
解决办法
78万
查看次数

atoi vs atol vs strtol vs strtoul vs sscanf

我试图从正在解析的命令行中找出,哪个函数最好将十进制,十六进制或八进制数转换int为最佳数 - 不事先知道输入.

然后,目标是使用单个函数来识别不同类型的输入并将其分配给它的integer(int)值,然后可以使用它:

./a.out 23 0xC4 070
Run Code Online (Sandbox Code Playgroud)

可以打印

23
196 /*hexadecimal*/
56  /*octal*/
Run Code Online (Sandbox Code Playgroud)

我能看到的唯一问题是解析找到十进制整数和八进制之间的差异.

边题,是否可以将字符串转换为整数使用?

c

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

如何从vector <char>转换为数字整数

我有一个向量,该向量来自用户输入60,000的['6''0''0''0''0']。我需要一个整数60000,以便可以操纵此数字。

我是C ++和一般编程的新手。我从串行端口读取了60,000-3,500,000的数据/数字,我需要一个整数,成功完成此操作并打印出来的唯一方法是通过std :: vector。我尝试做向量,但是它给了我一些时髦的数字。

#include "SerialPort.h"
std::vector<char> rxBuf(15);
DWORD dwRead;
while (1) {
  dwRead = port.Read(rxBuf.data(), static_cast<DWORD>(rxBuf.size()));
  // this reads from a serial port and takes in data
  // rxBuf would hold a user inputted number in this case 60,000
  if (dwRead != 0) {
    for (unsigned i = 0; i < dwRead; ++i) {
      cout << rxBuf[i];
      // this prints out what rxBuf holds
    }
    // I need an int = 60,000 from my vector holding [ '6' …
Run Code Online (Sandbox Code Playgroud)

c++ type-conversion char stdvector visual-c++

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