无符号字符上的键盘输入
Keyboard input on unsigned char?
uchar szPlaintext[128]; //dato da criptare
cout << "nInserisci testo : ";
getline(cin, szPlaintext);
我用getline(cin,szPlaintext(尝试过;但我有很多错误。我使用 VS2015 编译。前提是我正在尝试在我的程序中实现 AES(不是我的(;乌查尔宣言就是这样。
uchar szPlaintext [128] = "text that I want to insert";
错误是:
1>d:downloadscuolac++virtualaesvirtualaesencrypt.cpp(32): error C2672: 'getline': no matching overloaded function found
1>d:downloadscuolac++virtualaesvirtualaesencrypt.cpp(32): error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)': could not deduce template argument for 'std::basic_string<_Elem,_Traits,_Alloc> &' from 'uchar [128]'
1> c:program files (x86)microsoft visual studio 14.0vcincludestring(157): note: see declaration of 'std::getline'
1>d:downloadscuolac++virtualaesvirtualaesencrypt.cpp(32): error C2780: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)': expects 3 arguments - 2 provided
1> c:program files (x86)microsoft visual studio 14.0vcincludestring(146): note: see declaration of 'std::getline'
1>d:downloadscuolac++virtualaesvirtualaesencrypt.cpp(32): error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &&,std::basic_string<_Elem,_Traits,_Alloc> &)': could not deduce template argument for 'std::basic_string<_Elem,_Traits,_Alloc> &' from 'uchar [128]'
1> c:program files (x86)microsoft visual studio 14.0vcincludestring(126): note: see declaration of 'std::getline'
1>d:downloadscuolac++virtualaesvirtualaesencrypt.cpp(32): error C2780: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &&,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)': expects 3 arguments - 2 provided
1> c:program files (x86)microsoft visual studio 14.0vcincludestring(73): note: see declaration of 'std::getline'
Pietrob0b
Utente Junior
Messaggi: 36
Iscritto il: 10 dic 2015, 20:44
std::getline
采用std::string
引用,而不是原始指针。
string sPlaintext;
cout << "nInserisci testo : ";
getline(cin, sPlaintext);
uchar* szPlaintext = (uchar*) sPlaintext.c_str(); //dato da criptare
正如其他人已经指出的那样,std::getline 引用了 std::string 而不是 "char *",所以你的程序编译失败了。下面是两个版本的 std::getline 。
istream& getline (istream& is, string& str, char delim);
istream& getline (istream& is, string& str);
现在,假设你想要在 char* 中输入字符串,如何使其工作。按照以下程序操作。
// Example program
#include <iostream>
#include <string>
#include<cstring>
int main()
{
char szPlaintext[128]; //dato da criptare
std::cout << "nInserisci testo : ";
std::string str ;
getline(std::cin, str);
strcpy(szPlaintext,str.c_str());
std::cout << szPlaintext;
}
相关文章:
- 视窗键盘输入 c++
- 将鼠标和键盘输入发送到 unity3d 游戏 (Rust)
- C ++异步键盘输入(标准方式)
- 盖奇不读取键盘输入
- 在 Linux 上C++:在作为 systemd 服务运行时侦听键盘输入
- 是否可以将键盘输入绑定到 Win32 中的单个应用程序?
- 使用 Windows API c++ 的键盘输入
- 如何检查从键盘输入的特定整数值是否存在于C++文件中的一行或多行中
- 为什么如果我从键盘输入EOF克里昂不要在运行窗口打印程序的输出?
- 从特定 USB 端口捕获键盘输入
- 使用 sfml 进行 2 个键盘输入
- 如何对并行键盘输入进行编程
- 区分键盘记录器中的密码和其他类型的键盘输入
- OpenGL/GLFW/GLM-键盘输入无反应
- 在 MFC 应用中模拟应用内的键盘输入C++
- 如何在C++中终止具有键盘输入的侦听 TCP 服务器
- 通过键盘输入字符串数组和 int 数组的数组大小
- QString变量在使用QT Creator从键盘输入的双变量后跳过
- 如何在CPP中获取直接键盘输入?(跨平台)
- SDL键盘输入未触发