【发布时间】:2018-04-24 23:15:35
【问题描述】:
我正在尝试编写一个程序,该程序从文件(仅字符串)中读取文本并将其反转。以下代码可以做到这一点,但它没有考虑单词之间的空格:
#include<iostream>
#include<vector>
#include<fstream>
using namespace std;
int main(){
ifstream file("file.txt");
char i;
int x;
vector<char> vec;
if(file.fail()){
cerr<<"error"<<endl;
exit(1);
}
while(file>>i){
vec.push_back(i);
}
x=vec.size();
reverse(vec.begin(), vec.end());
for(int y=0; y<x; y++){
cout<<vec[y];
}
return 0;
}
如果文件上的文本是“dlroW olleH”,程序会打印出“HelloWorld”。我该怎么做才能打印“Hello World”(两个单词之间有空格)?
【问题讨论】:
-
使用 std::getline 读取输入。
-
>>默认行为是将空格视为不需要的并为您丢弃。通常非常有帮助。不过,在这种情况下就没那么有用了。 -
您的代码是否在没有
#include<algorithm>的情况下运行?
标签: c++ string vector char reverse