仅使用iostream,fstream,string和vector反转字符串

时间:2017-09-20 00:52:29

标签: c++11

一周前我刚开始使用C ++,所以我对语言知之甚少。我正在创建一个程序,输入一个文本文件,然后反转所有行。

输入:

"abc"

"123"

将是:

"cba"

"321"

我可以弄清楚如何输入文件中的行,但我的反向功能有问题。我试图使用子字符串打印出每个单独的字符作为字符串,从长度-1开始到0结束。但这似乎不起作用。当我运行程序时,我得到了这些我不理解的错误。对于出了什么问题的任何想法?

Heres the image

#include <iostream>
#include <fstream>
#include <string>
#include <vector>



using namespace std;

void reverse(string input) {


for((int x=input.length()-1); x=0; x--)
cout << input.substr(x);

}
cout << endl;
}


int main()
{
string line;
ifstream myFile;
myFile.open("reverse_input.txt");

while(getline(myFile, line)) {
    reverse(line);
}

return 0;
}

1 个答案:

答案 0 :(得分:0)

编译器抱怨的代码中存在几个语法错误

#include <iostream>
#include <fstream>
#include <string>
#include <vector>



using namespace std;

void reverse(string input) {
   for( unsigned int x= (input.length()-1); x>=0; x--) { //Missing {, extra (), >= insteadof = 0
      cout << input[x] << flush;
   }
   cout << endl;
}

int main()
{
    string line;
    ifstream myFile;
    myFile.open("reverse_input.txt");

    while(getline(myFile, line)) {
        reverse(line);
    }

    return 0;
}