我想输出一个像数据库概念一样可读的文件。 我的期望是:
Name[10] ContactNo[15] GENDER[10]
====================================
Johnny +60123456789 MALE
Emily +69876543210 FEMALE
Jason +61535648979 MALE
我试图这样做:
char name[10],contact[15],gender[10];
//user input here//
ofstream myfile("contact.txt");
myfile>>name>>contact>>gender;
但输出文件中的所有字符串都是连接的,没有任何空格。知道我能做到吗?我尝试这样做是为了当我从文件中读取具有正确宽度的数据并将它们放入变量时,这是一个错误的概念吗?或任何建议?
答案 0 :(得分:2)
流操作符std::setw
和std::setfill
的组合将执行您想要的操作:
myfile << std::setfill(' ') << std::left
<< std::setw(10) << name
<< std::setw(15) << contact
<< std::setw(10) << gender;
setfill
可让您指定用于填充的字符。 std::left
, std::internal
and std::right
指定填充字符的位置。
答案 1 :(得分:0)
我会包含<stdio.h>
并使用printf()
printf ( "%10s %15s %10s\n", name, contact, gender );
那应该能得到你想要的东西。
答案 2 :(得分:0)
我建议您在值之间使用符号\t
。 \t
插入标签。然后,你必须写:
myfile>>name>>"\t">>contact>>"\t">>gender;