C ++使用填充将char数组写入文件

时间:2013-08-21 10:03:57

标签: c++ char

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

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;

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

3 个答案:

答案 0 :(得分: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::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;