1
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
void reverse_words(const std::string &file) {
std::ifstream inFile { file };
std::vector<std::string> lines;
if(static_cast<bool>(inFile)) {
std::string line;
while(std::getline(inFile, line, '\n')) {
lines.push_back(line);
}
std::vector<std::string> reverse_line;
std::string word;
for(auto line: lines) {
while(std::getline(line, word, ' '))
reverse_line.push_back(word);
}
}
}
int main(int argc, char ** argv) {
if(argc == 2) {
reverse_words(argv[1]);
}
}
在我的程序的最後一個for循環中,我想從一行中讀取一個單詞,該行是一個字符串,因此它與getline()函數定義不匹配。我怎樣才能將該行轉換爲字符串流,以便我可以像讀取文件一樣使用它?將字符串對象轉換爲istringstream
請忽略此刻程序的邏輯,它不完整,我的問題是C++特定的。
旁註:你不需要'如果(的static_cast(INFILE))',用'如果(INFILE)' –
你不」不得不寫'if(static_cast(inFile)){'。 'InFile'可以上下文轉換爲'bool',所以你可以直接寫'if(inFile){' –
Barry
@DieterLücking哈哈,10秒 – Barry