小编0x4*_*2D2的帖子

从u32int读取一点

我输入一个包含无符号32位int的值,我想读取第19位.我该怎么做?

这是我想要读取的输入:

uint32 Input = u32AHI_DioReadInput();
int x = ??? 
Run Code Online (Sandbox Code Playgroud)

我尝试使用Input(19),input[19]但我没有工作,因为第一个是一个功能,第二个被认为是一个数组.我知道我应该和一些比特并改变他们,但我只是不知道我该怎么做.

c++ int

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

ifstream eof 函数 (C++)

我有这个代码:

string a = "D:\\Users\\user-pc\\Desktop\\testing\\a.txt";

ifstream f;
    /*edit*/ string line;

    /*edit*/ getline(f, line);
f.open(a);
if ( f.eof() )
    cout << "ended";
else
    cout << "nope"
Run Code Online (Sandbox Code Playgroud)

以及文件“a.txt”,其中没有任何内容。

输出是“不”,总是“不”。我不明白。。我用错了吗?

编辑:仍然 .eof() 不起作用

c++ file ifstream eof

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

std :: unique_ptr的好处是什么,包括删除器作为类型的一部分

为什么std::unique_ptr包含删除函数签名作为模板定义的一部分有什么原因?

template<class T, class Deleter = std::default_delete<T>> class unique_ptr;
Run Code Online (Sandbox Code Playgroud)

VS

template< class T > class shared_ptr;
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

访问存储在vector中的对象:使用std :: vector :: at或std :: vector :: operator []?

在访问向量元素时,使用at和括号之间是否有任何区别[]

我看到同样的人喜欢myvector.at()上面myvector[],是否有一些东西使它更优选,如在某些情况下更好的表现,或与其他一些语言共同?

c++ vector

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

C++默认参数值使用另一个参数的值

我知道参数的默认参数值不能是另一个参数的值.例如

void foo( int a, int b = a );
Run Code Online (Sandbox Code Playgroud)

显然,b的默认值不是编译时常量,但在我看来,编译器可以生成代码来执行此操作.

我敢肯定有一个很好的理由不允许这个,我想知道它是什么?

c++

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

CSV用c ++解析

我正在尝试创建一个代码,通过csv数据库解析库存信息.目前,我已生成代码,以便它将使用关键字进行搜索并打印整行,但我正在尝试获取它,以便以整齐格式化的方式打印带有标题行的整行.

我试图得到它,以便如果我搜索谷歌,它会回来

Symbol GOOG
NAME Google Inc
今日高位$ 568.77

csv如何看起来像:

符号,名称,价格,今日高点,今日低点,52周低点
Google,Google Inc.,$ 568.77,$ 570.25,$ 560.35
AAPL,Apple Inc.,$ 93.28,$ 63.89,$ 99.44.

码:

string NameSearch::getInput()
{
    cout << "Enter the name of the company you would like to search for: ";
    getline(cin, input);
    return input;

}
void NameSearch::NameAlgorithm()
{
    string line;
    ifstream fs("Stock Database.csv");

    while (!fs.eof())
    {
        getline(fs, line);
        string companyname = "";    
        string a;
        int column = 1;             
        int commacount = 0;         
        int ChrCount = 0;               

        while (line != "\0") …
Run Code Online (Sandbox Code Playgroud)

c++ csv parsing

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

如何计算区间[a,b]

在我的第一个小项目中,我是C++的新手让我头疼.

如果我理解正确的pbolem,我需要cout区间[a,b]的总和,这应该意味着:17 + 18 + 19 + 20 + 21 ..... + 52 =?(纠正我,如果我错了!)我尝试了while,do-while并且他们都结束了无限循环所以现在我尝试for循环让我只增加a的值直到它达到52.

#include <iostream>

int main(int argc, char* argv[])
{
    const int a = 17;
    const int b = 52;

    int summe = 0;

  for(summe = a; summe <=b; summe++)

    std::cout << "Summe: " << summe << "\n";

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

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

C++ 11是否使用移动语义来进行复制到分配优化?

假设我有一个名为Foo的类,它定义了合适的移动构造函数/赋值运算符.给定以下伪代码:

Foo some_func(Foo var) { 
    <update var>
    return var;
}

int main() { 
    Foo var;
    var = some_func(var);
}
Run Code Online (Sandbox Code Playgroud)

将var传递给some_func时,C++ 11会自动使用移动语义,并再次重新分配给var,因为var的原始值会被销毁吗?我认为这将是一个安全的优化,它可以让你编写与传递引用/指针一样快的纯函数.如果做不到,为什么不呢?我知道它可以用std :: move强制,但如果是自动的话它会很酷.

c++ c++11

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

vector :: push_back从const Type*转换为type*

签名vector::push_back是:

void push_back (const value_type& val);
Run Code Online (Sandbox Code Playgroud)

这意味着它有责任不腐败val.

我的功能是:

Result User::addFriend(const User* newFriend)
{
    // check that newFriend is valid and is not already a friend
    if (newFriend == NULL || isFriend(newFriend)) return FAILURE;
    friends_.push_back(newFriend);
    friendsNum_++;
    return SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

当我编译.c文件时,我得到编译错误:

invalid conversion from 'const User*' to 
std::vector User*::value_type
Run Code Online (Sandbox Code Playgroud)
  1. 如果push_back承诺不改变val,为什么我们会得到这个错误?

  2. 克服错误的正确和清洁方法是什么?也许是const_cast

谢谢!

User.h:

class User {
...
public:
    vector<User*> friends_;
...
}
Run Code Online (Sandbox Code Playgroud)

c++ const vector const-cast

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

strcpy()没有正确复制c ++

最近我做了一个程序,它有一个字符数组 board[8][8][2];

它基本上是一个8X8板,可以存储'2'字母字符串.我没有提供完整的代码.

但这是问题所在.

for (j = 0; j < 8; j++) {
    strcpy(board[1][j], P[j].sym);
}

cout << board[1][1] << endl;
Run Code Online (Sandbox Code Playgroud)

这里P[1].sym="P1"P[0].sym="P0"P[2].sym="P2"

因此P[j].sym基本上是一个两个字母的字符串,board[1][j]也应该是一个两个字母的字符串.

但输出为

cout << board[1][1] << endl;
Run Code Online (Sandbox Code Playgroud)

给出为 P1P2P3P4P5P6P7

和输出

cout << board[1][0] << endl;
Run Code Online (Sandbox Code Playgroud)

给出为 P0P1P2P3P4P5P6P7

对于

cout << board[1][5] << endl;
Run Code Online (Sandbox Code Playgroud)

P5P6P7 是输出.

为了消除任何疑问,整个board[8][8][[2]已经初始化并且所有P[j].sym已经初始化.

如果它有帮助,这里是初始化的代码P:

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

class Game
{
public:
   char board[8][8][2];
   char *****possibilities;
 }; …
Run Code Online (Sandbox Code Playgroud)

c++ strcpy strcat

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

标签 统计

c++ ×10

c++11 ×2

vector ×2

const ×1

const-cast ×1

csv ×1

eof ×1

file ×1

ifstream ×1

int ×1

parsing ×1

strcat ×1

strcpy ×1