C++更改后删除文本文件中的空格
好吧,我的简单程序遇到了另一个问题。我的程序获取文本文件,读取它,然后删除最后一个符号并输出包含更改的新文本文件。它按照我想要的方式执行所有操作,除了删除所有空格。有什么解决办法吗? 代码如下:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char symbols[10000];
ofstream outFile("outFile.out");
ifstream inFile("inFile.in");
for(int i=0;i<10000;i++)
{
inFile >> symbols[i];
}
for(int j=0;j<10000;j++)
{
if(symbols[j]=='\0')
{
symbols[j-1] ='\0';
break;
}
}
if(outFile.is_open())
{
for(int l=0;l<10000;l++)
{
outFile << symbols[l];
}
}
inFile.close();
outFile.close();
return 0;
}
PS 我的意思是如果我给它一条短信 Hello world
它输出 Helloworl 空间神奇地消失了..
Okay, I've encountered another problem with my simple program. My program gets the text file, reads it, then deletes the last symbol and outputs the new text file with the changes. It does everything as I want except that it does delete all spaces. Any solutions for that?
Here's the code:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char symbols[10000];
ofstream outFile("outFile.out");
ifstream inFile("inFile.in");
for(int i=0;i<10000;i++)
{
inFile >> symbols[i];
}
for(int j=0;j<10000;j++)
{
if(symbols[j]=='\0')
{
symbols[j-1] ='\0';
break;
}
}
if(outFile.is_open())
{
for(int l=0;l<10000;l++)
{
outFile << symbols[l];
}
}
inFile.close();
outFile.close();
return 0;
}
P.S.
I mean if I give it a text with
Hello world
it outputs Helloworl
the spaces magically disappear..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
>>
提取运算符与char
类型一起使用时,会从输入文件中读取下一个非空白字符。因此,这会跳过输入中的所有空格。您可以使用
noskipws
操纵器关闭此功能,如下所示:或者,您可以避免使用
>>
运算符。例如,您可以使用istream::read()
。The
>>
extraction operator, when used with achar
type, reads the next non-whitespace character from the input file. So, this skips all whitespace in your input.You can use the
noskipws
manipulator to turn off this feature, like this:Alternately, you can avoid using the
>>
operator. You could useistream::read()
for example.使用
如果包含 iomanip,那么还有一个操纵器:
Use
There is a manipulator too, if you include
iomanip
: