c++ - 在 C++ 中按列将数据写入文本文件

标签 c++ file file-io

<分区>

我是 C++ 的初学者。我通过一个对象数组输入了变量(属于一个类)的值。现在我如何按如下方式将它们写入文本文件?谢谢…………

SLNO    NAME      ADDRESS        PHONE NO     TYPE      
   1.   ABC       xyzagsgshsh    27438927     Mobile
   2.   QWE       qwhjbbdh       78982338     Landline

这是我存储数据的代码。如何将其制作成如下内容的文本文件?

#include<iostream>
#include<string>
#include<fstream>
using namespace std;

class emp
{
    string name,address,phone,type;
    public:
    void getdata();
}obj[5];

void emp::getdata()
{
    cout<<"\nEnter the details:";
    cout<<"\nName: ";cin>>name;
    cout<<"Address:";
    cin>>address;
    cout<<"Phone number: "; cin>>phone;
    cout<<"\nType of phone? (Landline/Mobile) :";
    cin>>type;
}

int main()
{
    ofstream ptr;
    ptr.open("Phone.dat",ios::out);
    cout<<"\nEnter the no.of.records: ";
    int n,i;
    cin>>n;
    for(i=0;i<n;i++)
    {
        obj[i].getdata();
        ptr.write((char*)&obj[i],sizeof(obj[i]));
    }
    return 0;
}

最佳答案

由于您已经创建了一个文件流,您可以利用输出标志(std::left、std::right 和 std::setw):

http://www.cplusplus.com/reference/iomanip/setw/

http://www.cplusplus.com/reference/ios/left/

现在,为了确保存储在 emp 类的任何对象中的任何字符串不超过您通过 std::setw 分配给 ofstream/ostream 的大小,您可以使用 string::resize。

关于c++ - 在 C++ 中按列将数据写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15680707/

相关文章:

c++ - 为什么我不能在我的程序中使用 "file_ptr>>variable"从文件中读取?

c++ - 通过索引实现 'constexpr for'

c++ - OpenCv 输入样本必须是浮点矩阵 ERROR

c++ - "Attribute is protected within this context"具有继承和 .h 和 .cpp 文件

linux - 我在 SVN 中四处移动,来回复制文件。现在我不能使用它

java - 如何使用在 Tomcat 上运行的 servlet 执行文件 I/O

c++ - 如何在 C++ 中将二进制文件附加到二进制文件

c++ - 声明成员函数时为什么要指定类名?

c - 如何在文件中用 c 打印根符号

java.security.AccessControlException : Access denied (java. io.FilePermission