Хотя тема вопроса не совсем точна, вот в чем проблема. У меня есть файл, в котором человек пишет свой текст, например «Сегодня очень хороший день», и я храню его в документе txt. Тогда моя задача - взять все эти символы и переместить их на одну букву далее (a становится b, z становится a и т. Д.). Но мне нужно держать места на своих местах.Как добавить пространство в массив
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>
using namespace std;
int main(){
string a;
string Code;
string New;
ifstream File ("Txt.txt");
File>>Code;
for (int i = 0; i<Code.size(); i++){
if (Code.at(i) >= 'A' && Code.at(i) <= 'V' || Code.at(i) >= 'a' && Code.at(i) <= 'v') {
a = Code.at(i) + 4;
New += a;
}
else if (Code.at(i) == 'W'){
a = 'A';
New += a;}
else if (Code.at(i) == 'X'){
a = 'B';
New += a;}
else if (Code.at(i) == 'Y'){
a = 'C';
New += a;}
else if (Code.at(i) == 'Z'){
a = 'D';
New += a;}
else if (Code.at(i) == 'w'){
a = 'a';
New += a;}
else if (Code.at(i) == 'x'){
a = 'b';
New += a;}
else if (Code.at(i) == 'y'){
a = 'c';
New += a;}
else if (Code.at(i) == 'z'){
a = 'd';
New += a;}
else if (Code.at(i) == ' '){
a = Code.at(i);
New += a;
}
}cout<<New;
return 0;
}
Но программа только читает первое слово. Как мне изменить программу для чтения всего текста со всеми пробелами?
Вам не нужны все те 'if' заявления, если вы поняли, что следующее письмо по модулю 26. Например, если буква«г», так как«г это 26-буква, (26 + 1) mod 26 = 1, а 'a' - первый символ. – PaulMcKenzie
Я думаю, что это отвечает на ваш вопрос: http://stackoverflow.com/questions/37449872/how-to-read-in-multiple-words-from-a-text-file –