c++ - 如何在数组中添加一个空格

标签 c++ spaces

虽然问题的主题不太准确,但这就是问题所在。我有一个文件,一个人在其中写下他的文字,例如“今天是非常美好的一天”,我将其存储在一个 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;
}

但是程序只读了第一个字。我应该如何更改程序以读取包含所有空格的所有文本?

最佳答案

使用 std::getline,像这样:

std::string line;
std::ifstream file("file.txt");
std::getline(file, line); //loads one line

顺便说一句 using namespace std; 是一种不好的做法,你应该保持你的全局命名空间干净并使用 std:: 前缀。如果你真的很懒,你可以只“导入”重要的部分。 使用 std::cin;

关于c++ - 如何在数组中添加一个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40832633/

相关文章:

c++ - 在无向图上设置值

c++ - 为什么我必须在 "original"指针上调用 delete?

java - 在 Java 中添加空格

php - 如何计算 PHP 文本语句中的空格

c++ - Xcode 找不到 cstddef

c++ - 默认在开关 block 的开头

c++ - SSE FP 单元是否检测到 0.0 个操作数?

mysql - SQL : Remove spaces in all tables

c - 如何在 C 中读取名称中包含空格的文件

java - 如何阻止 Java 将作为命令行参数传递的 JSON 字符串分离到 args[] 的单独子单元中