如何在CStdioFile中写入空格?

Ela*_*ana 0 c++ mfc

我正在使用a CStdioFile并尝试在写入CString之前留下许多空格.我试过CStdioFile.Seek(iNumOfSpaces, CStdioFile::current)我写的字符串.问题是,当我在Notepad ++中打开文件时,它会写入NUL而不是白色空格.如何将白色空间写成白色而不是NUL?提前致谢

And*_*gin 5

你误解了什么CFile::Seek()方法.它将文件指针绝对或相对地移动到指定位置.它不会添加/修改文件的内容.

相反,您应该使用CString::Format()支持填充的方法.这是一个显示如何使用它的示例:

CString s;  
s.Format(_T("|%-10s|"), _T("Data")); // left-align
s.Format(_T("|%10s|"), _T("Data")); // right-align
Run Code Online (Sandbox Code Playgroud)

结果字符串将如下所示:

|Data      |
|      Data|
Run Code Online (Sandbox Code Playgroud)

下面是一个示例,说明如何实现动态(可变长度)填充:

CString s;  
int n = 10;
s.Format(_T("|%-*s|"), n, _T("Data")); // left-align
s.Format(_T("|%*s|"), n, _T("Data")); // right-align
Run Code Online (Sandbox Code Playgroud)