首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何避免C++中的文本垂直输出?

如何避免C++中的文本垂直输出?
EN

Stack Overflow用户
提问于 2022-03-09 13:59:04
回答 2查看 89关注 0票数 -1

我需要这个来读取一个文件,并将它复制到另一个文件中,同时修改数字,除了它复制和显示所有的垂直线外,一切都正常工作。有办法避免这种情况吗?For循环似乎是一个问题,但是在不更改其他所有内容的情况下,应该添加/更改什么呢?

产出应是:

代码语言:javascript
运行
复制
9as 3
12as342sd
5678acv
代码语言:javascript
运行
复制
#include <iostream>
    #include <fstream>
    #include <ctype.h>
    using namespace std;
    
    int main()
    {
        string line;
        //For writing text file
        //Creating ofstream & ifstream class object
        ifstream ini_file {"f.txt"};
        ofstream out_file {"f1.txt"};
    
        if(ini_file && out_file){
    
            while(getline(ini_file,line)){
                // read each character in input string
                for (char ch : line) {
            // if current character is a digit
                    if (isdigit(ch)){
                        if(ch!=57){ch++;}
                        else if (ch=57){ch=48;}}
    
            out_file << ch << "\n";}}
    
            cout << "Copy Finished \n";
    
        } else {
            //Something went wrong
            printf("Cannot read File");
        }
    
        //Closing file
        ini_file.close();
        out_file.close();
    
        return 0;
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-09 14:20:21

学习将代码分割成更小的部分。

看一看:

代码语言:javascript
运行
复制
#include <cctype>
#include <fstream>
#include <iostream>

char increaseDigit(char ch) {
    if (std::isdigit(ch)) {
        ch = ch == '9' ? '0' : ch + 1;
    }
    return ch;
}

void increaseDigitsIn(std::string& s)
{
    for (auto& ch : s) {
        ch = increaseDigit(ch);
    }
}

void increaseDigitsInStreams(std::istream& in, std::ostream& out)
{
    std::string line;
    while(out && std::getline(in, line)) {
        increaseDigitsIn(line);
        out << line << '\n';
    }
}

int main()
{
    std::ifstream ini_file { "f.txt" };
    std::ofstream out_file { "f1.txt" };
    increaseDigitsInStreams(ini_file, out_file);
    return 0;
}
票数 1
EN

Stack Overflow用户

发布于 2022-03-09 14:02:15

out_file << ch << "\n";}}

我不知道我是否完全理解你的问题,因为你没有给出任何输出,但看起来你应该去掉这一行的"\n“。它在每一个字符之后都做了一个新的行。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71410527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档