我正在尝试读取输入文件的每个'char'并写入输出文件,直到找到'?'作为文件的结尾。除了单词之间的空格外,每个字符都写在输出文件中。我不知道这段代码有什么问题?
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream infile("in.txt");
ofstream outfile("out.txt");
char ch;
infile >> ch;
while(ch != '?')
{
outfile<<ch;
infile >> ch;
}
}
答案 0 :(得分:3)
答案 1 :(得分:1)
istream运算符>>
忽略空格。试试这个:
std::string s;
std::getline(infile,s,'?');
outfile << s;
答案 2 :(得分:1)
&gt;&gt;输入流的运算符通常与解释相关联。例如,在阅读string
时,它会跳过空格。阅读char
时可能就是这种情况。
您应该使用read
方法,例如:
infile.read(&ch, 1)
请参阅http://www.cplusplus.com/reference/iostream/ifstream/以获取参考资料
修改我忘记了get
方法。这会让你成为一个角色,投射为int
。 read
方法更适合在一次调用中读取一大块数据。
答案 3 :(得分:0)