C++按行从屏幕上写入文件,按行读取文件到屏幕上,先写后读

C++ 逐行写入文件,逐行读取文件,先写后读

1、解决的问题
将 几行整数 通过屏幕依次逐行写入到文件中,
然后再将该文件中的数据 逐行在屏幕上显示出来,
且 每一行的整数 按照一定的格式(如左对齐,每个数据后空四个字符)输出来。

eg:

屏幕上输入:
1 2 3 w
4 5 6 w
7 8 9 w
#
文件和屏幕中显示:
1   2   3
4   5   6
7   8   9

2、测试代码
代码中 逐行显示子函数 void disp_file_by_number(char *fname)参考了 该博文


/*
按行写入文件,按行读取文件,先写后读
*/
#include<iostream>
#include<fstream>
#include<sstream>//包含 istringstream
#include<iomanip>//包含 setiosflags(ios::left)、 setw(4)
using namespace std;

void disp_file_by_number(char *fname)
{
    ifstream in(fname);
    string line;
    if (in)
    {
        while (getline(in, line))
        {
            istringstream istrline(line);
            int c;//如果是整数的话,就存成 int 型
            while (istrline >> c)
                cout << setiosflags(ios::left) << setw(4) << c;
            cout << endl;
        }
        cout << endl;
    }
    else
        cout << "No such a file" << endl;
    in.close();
}

void write_into_file_by_line(char *fname)
{
    ofstream out(fname);
    string s;
    while (cin >> s && s != "#")//当遇到"#"时退出循环
    {
        if (s == "w")//输入 “w”,作为换行符
        {
            out << endl;
            continue;
        }
        out << setiosflags(ios::left) << setw(4) << s;
    }
    out << endl;
    out.close();
}

int main()
{
    write_into_file_by_line("test_out.txt");
    cout << "write into file done!" << endl;
    disp_file_by_number("test_out.txt");

    return 0;
}
/*
测试用例:
1 2 3 w
4 5 6 w
7 8 9 w
#
*/

3、缺点
在屏幕上输入时,必须以一个字符(如本文选择“w”)来代替换行,这一点不太好。
如果能够 直接点击回车键,就实现换行,就再好不过啦。
eg:

屏幕上输入:
1 2 3
4 5 6
7 8 9
#

望不吝赐教!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值