【问题标题】:C++ vector fuction "push_back()", what type return it? [duplicate]C++向量函数“push_back()”,返回什么类型? [复制]
【发布时间】:2020-12-08 07:51:06
【问题描述】:

我只是编写了一个程序,它将每个字符的字符串转换为 uft8 值

示例:a in utf8 decimal = 97/ utf8 十进制中的 5 = 53...

这里是我的代码:

    string word;//keyWord
    vector<__int8> tableau;//utfValueTab
    cout << "Entre un mot de passe : " << endl;
    cin >> word;
    
    //FONCTION CONVERTION STRING > UTF8 VALUE FOR EACH CHAR
    for (int a = 0; a < word.length(); a++) {
        __int8 utfValue = 0;
        for (short i = 0; i < 255 && word.at(a) != char(i); i++) {
            utfValue++;
        }
        tableau.push_back(utfValue);
        cout << tableau[a] << endl;
    }
    cout << "Voici votre mot de passe decoupe" << endl;

问题是,tableau[a] 返回 char 而不是 __int8 值,我不明白为什么,因为我的“tableau”像 uftValue 一样在 __int8 中。

那么,push_back 函数只返回字符和字符串值?

感谢您的帮助。

【问题讨论】:

  • 旁注:push_back() 的返回类型是void 在这里无关紧要。
  • 好的,谢谢你的遮阳篷,我会检查它
  • 就是这样,__int8 不能打印,所以我使用 short 并且它现在可以工作了!谢谢哟

标签: c++ utf-8


【解决方案1】:

试试标准的uint8_t,而不是__int8

【讨论】:

  • 我试了一下,我只有一个字符一个字符,就是打印
  • 通常所有 8 位数据类型都作为字符流
  • 通过将其转换为 int 来修复它。 cout &lt;&lt; int(tableau[a]) &lt;&lt; endl;
猜你喜欢
  • 2015-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
  • 2015-01-18
  • 2011-05-18
  • 1970-01-01
  • 2019-02-07
相关资源
最近更新 更多