1

我想输出一个像数据库概念一样可读的文件。我期望的是:

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;

但是输出文件中的所有字符串都是连接的,没有任何空格。知道我能做到吗?我尝试这样做是为了当我从具有精确宽度的文件中读取数据并将它们放入变量时,这是一个错误的概念吗?或者有什么建议?

4

3 回答 3

2

流操纵器的组合,std::setwstd::setfill做你想做的事:

myfile << std::setfill(' ') << std::left
       << std::setw(10) << name
       << std::setw(15) << contact
       << std::setw(10) << gender;

setfill让您指定用于填充的字符。std::left,std::internalstd::right指定填充字符的位置。

于 2013-08-21T10:10:55.900 回答
0

我会包括<stdio.h>并使用printf()

printf ( "%10s %15s %10s\n", name, contact, gender );

那应该可以得到你想要的。

于 2013-08-21T10:07:14.523 回答
0

我建议您\t在值之间使用符号。\t插入标签。然后,你必须写:

myfile>>name>>"\t">>contact>>"\t">>gender;
于 2013-08-21T10:07:36.273 回答