我一直試圖使用getline來識別我的字符串輸入中的空格。字符不是空格,而是字符之間插入數字。當我通常使用cin時,函數可以正常工作,但不會看到空格。爲什麼數字和特殊字符插入空格?
如何更改以下內容以確保實際空間?
這裏是我的代碼函數getline(字符串快報不再移動):
#include "stdafx.h"
using namespace std;
#include <iostream>
#include <string>
void encrypt(std::string &iostr, int key)
{
key %= 26;
int ch;
for (auto &it : iostr)
{
ch = tolower(it) + key;
if (ch > 'z')
ch -= 26;
it = ch;
}
}
int main()
{
string source;
int key = 1;
cout << "Paste cyphertext and press enter to shift 1 right: ";
getline(cin, source);
encrypt(source, key);
cout << source << "";
system("pause");
return 0;
}
爲什麼不'如果(isspace爲(CH)' – NathanOliver
@NathanOliver此舉有助其他字符,如數字和特殊字符但是,OP的移算法是不適合?這些角色 – dasblinkenlight
完美地工作,我會記住這個檢查,非常感謝dasblinkenlight – bert0nius