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

C++ write char array to file with padding

本文关键字:数组 文件 字符 填充 C++      更新时间:2023-10-16

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

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;

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

操纵器std::setwstd::setfill的组合将执行您想要的操作:

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

setfill允许您指定用于填充的字符。 std::leftstd::internalstd::right 指定填充字符的位置。

我建议您在值之间使用符号tt插入制表符。然后,你必须写:

myfile>>name>>"t">>contact>>"t">>gender;

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

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

这应该能让你得到你想要的。