我正在尝试从文件中读取并且能够成功读取,但isstream :: get()函数会一直跳过第一个字符。我在线阅读它是因为cin通常会使缓冲区跳过第一个字符,但我不知道如何在我的结尾处修复它。
这是我的主要内容:
int main () {
string fileName;
cout << "Please enter the name of the input file: \n";
cin >> fileName;
//Creates an object and executes appropriate functions
pa3* obj = new pa3(fileName);
obj->seperateCode();
obj->printFields();
return 0;
}
这是构造函数
//Constructor
pa3 (string fileName) {
char word;
string temp;
ifstream userFile;
string fullFileName = "\"" + fileName + "\"";
userFile.open(fileName);
if (!(userFile.is_open())) {
cout << "Not a valid file\n";
cout << "Exiting...\n";
exit(0);
}
else {
// userFile.unget();
while (!userFile.eof()) {
userFile.get(word);
temp += word;
if (isspace(word)) {
stackImplementation::push(temp, totalFile);
temp.clear();
}
}
}
for (vector<string>::iterator it = totalFile.begin(); it != totalFile.end(); ++it) {
cout << *it << " ";
}
}
我尝试过在线搜索,但无法将解决方案应用于我的问题,因为大多数人使用cin并忽略以解决问题。任何帮助将不胜感激。