相关疑难解决方法(0)

像sprintf一样的std :: string格式

我必须格式化std::stringsprintf,并将其发送到文件流.我怎样才能做到这一点?

c++ string formatting stl

412
推荐指数
17
解决办法
77万
查看次数

操作后恢复std :: cout的状态

假设我有这样的代码:

void printHex(std::ostream& x){
    x<<std::hex<<123;
}
..
int main(){
    std::cout<<100; // prints 100 base 10
    printHex(std::cout); //prints 123 in hex
    std::cout<<73; //problem! prints 73 in hex..
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,在从函数返回后,是否有任何方法可以将cout的状态"恢复"到原来的状态?(有点像std :: boolalpha和std :: noboolalpha ..)?

谢谢.

c++ iostream

91
推荐指数
7
解决办法
3万
查看次数

如何使用cout打印0x0a而不是0xa?

如何使用cout打印0x0a而不是0xa?

#include  <iostream>

using std::cout;  
using std::endl;  
using std::hex;

int main()  
{  
    cout << hex << showbase << 10 << endl;  
}
Run Code Online (Sandbox Code Playgroud)

c++ io iostream iomanip

51
推荐指数
4
解决办法
5万
查看次数

使用%x打印十六进制值时,为什么在每个值后打印'ffffff'?

在示例c ++代码中,我将打开一个文件并打印六进制文件中的每个字符只有16个字符,但为什么ffffff会在每个heax值后打印?

char buff[256];
// buff filled with fread
for(i=0;i<16;i++)
printf("%x",buff[i]);
Run Code Online (Sandbox Code Playgroud)

输出是:

4affffff67ffffffcdffffff
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

c++

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

C++:以十六进制打印双精度表示

有没有一种简单的方法来操作 std::cout 以便它以十六进制表示形式打印双打?换句话说,相当于:

printf("%" PRIx64, *reinterpret_cast<uint64_t *>(&my_double));
Run Code Online (Sandbox Code Playgroud)

为了提供一些上下文,我有一个程序可以打印数百个浮点结果,我想知道是否有一种神奇的单行 hack 可以以十六进制打印所有这些结果。

c++ cout

5
推荐指数
1
解决办法
7918
查看次数

为什么 std::unordered_set 的 std::hash 函数不区分大小写?

我的问题不是关于使用不区分大小写的 std::unordered_set ,而是它是如何工作的?

#include "stdafx.h"
#include <string>
#include <iostream>
#include <unordered_set>
#include "boost/algorithm/string.hpp"


struct case_insensitive_comparer
{
    bool operator () (const std::string& x, const std::string& y) const
    {
        return boost::iequals(x, y);
    }
};

using case_insensitive_set = std::unordered_set<std::string, std::hash<std::string>, case_insensitive_comparer>;

std::vector<std::string> permute_case(const std::string& s)
{
    std::vector<std::string> strs;

    // Iterate through all bitmasks, 1 for uppercase, 0 for lowercase
    int msb = 1 << (s.length() - 1);
    int upper = 1 << s.length();
    std::locale loc;
    for (int i = 0; i < upper; …
Run Code Online (Sandbox Code Playgroud)

c++ unordered-set c++11

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

C++使数字以十六进制显示

我想让一个数字出现在十六进制字母表中,但我不知道如何.

例如,我使用数字255.我希望数字显示为"FF FF",但它显示为"15 15"

number是我想要转换的数字

base是所需的字母(bin,dec,oct,hex)

str是带数字的表

数字是我有多少位数

# include <iostream>
using namespace std;
class Number
{
    private:
        int number; 
        int base;
        int str[80];
        int digits;
        void    convert();

    public:
        Number(int n);
        Number(int n,int b);
Run Code Online (Sandbox Code Playgroud)

printNumber打印数字

        void    printNumber();
};
Run Code Online (Sandbox Code Playgroud)

convert是转换数字的函数

void    Number::convert()
{
    int icount=0;
    int x=number;
    while(x!=0)
    {
        int m=x % base;
        x=x/base;
        str[icount]=m;
        icount=icount+1;
    }
Run Code Online (Sandbox Code Playgroud)

数字计算我拥有的位数

    digits=icount;
}
Run Code Online (Sandbox Code Playgroud)

此函数用作基数dec

 Number::Number(int n)
{
    number=n;
    base=10;
    convert();
}
Run Code Online (Sandbox Code Playgroud)

此函数使用整数b作为基数

Number::Number(int n,int b)
 {
    number=n;
    base=b;
    convert();
 }

void    Number::printNumber()
{
    int …
Run Code Online (Sandbox Code Playgroud)

c++ hex

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

标签 统计

c++ ×7

iostream ×2

c++11 ×1

cout ×1

formatting ×1

hex ×1

io ×1

iomanip ×1

stl ×1

string ×1

unordered-set ×1