在C+中按列向文本文件写入数据+; 我是C++初学者。我已经通过一个对象数组输入了变量(属于一个类)的值。现在,我如何将它们按如下方式写入文本文件列??谢谢 SLNO NAME ADDRESS PHONE NO TYPE 1. ABC xyzagsgshsh 27438927 Mobile 2. QWE qwhjbbdh 78982338 Landline
这是我用来存储数据的代码。如何将其制作成包含以下内容的文本文件在C+中按列向文本文件写入数据+; 我是C++初学者。我已经通过一个对象数组输入了变量(属于一个类)的值。现在,我如何将它们按如下方式写入文本文件列??谢谢 SLNO NAME ADDRESS PHONE NO TYPE 1. ABC xyzagsgshsh 27438927 Mobile 2. QWE qwhjbbdh 78982338 Landline,c++,file,file-io,C++,File,File Io,这是我用来存储数据的代码。如何将其制作成包含以下内容的文本文件 #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<
#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;
类电磁脉冲
{
字符串名称、地址、电话、类型;
公众:
void getdata();
}obj[5];
void emp::getdata()
{
cout您可以使用字符串/流、换行符和
流myfile的;
myfile.open(“example.txt”);
myfile它取决于上下文。对于控制台的简单输出
窗口(或者如果您在其他地方有固定宽度的字体,但这是
非常罕见),您可以在每个元素之前使用std::setw
,
指定字段的宽度。对于文本(std::string
),
但是,只需使用调整大小
,并使其成为
开始时大小正确。因为您已经创建了文件流,所以可以利用输出标志(std::left、std::right和std::setw):
现在,为了确保存储在emp类的任何对象中的任何字符串都不会超过通过std::setw分配给ofstream/ostream的大小,可以使用string::resize。如果您输入了这些值,那么您已经完成了硬操作,所以我有点困惑您为什么要停留在输出上。您能展示一下您编写的代码吗到目前为止,或者解释一下你一直坚持的是什么。你的问题有点模糊。从学习标准库的格式化输出功能开始。你可以在上找到它们的全部内容,或者查找“C++格式化输出”在google上。@john:代码如上所述。我需要将Phone.dat文件转换成前面提到的文本文件。@Razius您不需要使用write
,它用于二进制数据,只需ptr注意,默认情况下,ostream
右对齐。(这通常是数值所需要的。)因此,直接在输出的字符串上使用resize
通常更容易。但是我输入的值是否会存储到右列下的文本文件中?如果输入空格数(请确保列文本的长度永远不会大于setw(x)),其中x是您的列可以包含的总字符数+空格数),是。例如,如果您在列之前设置了w(10),但在其中输入的文本长度为12个字符,则整行将不对齐。
ofstream myfile;
myfile.open ("example.txt");
myfile << "SLNO" << std::setw(10) << "NAME" << std::setw(10) << "ADDRESS" << std::setw(10) << "PHONE NO" << std::setw(10) << "TYPE\n";