[英]How to read a file path from input in C++ so you can open a txt file?
我在c:\\\\....\\mydocuments
有一個名為myPoints.txt的文件。 它包含一些x,y點的列表(例如3.4,5.6)。 我正在嘗試使用ifstream打開它。 進入文件目錄后,我會收到運行時錯誤,程序將關閉。(例如, c:\\mydocuments\\myPoints.txt
)
這是我的文件打開代碼:
int main()
{
cout << "Please enter the file name: ";
string name;
cin >> name;
ifstream ifs(name.c_str());
if (!ifs) error("can't open input file ", name);
vector < Point > points;
Point p;
while (ifs >> p) points.push_back(p);
// ....
}
不知道問題是否出在我的ifstream函數中,因此我以防萬一:
ifstream& operator >>(ifstream& ifs, Point& p)
{
double x, y;
char comma;
ifs >> x >> comma >> y;
if (!ifs) return ifs;
if (comma != ',') {
ifs.clear(ios_base::failbit);
return ifs;
}
p = Point(x, y);
return ifs;
}
是的,您可以輸入文件的完整路徑。 最主要的是您需要正確鍵入所有內容(例如,至少在大多數語言環境中,“ My Documents
需要一個空格)。
還要注意像cin >> name;
這樣的代碼cin >> name;
(其中name
是std::string
)只會讀取第一個空格字符。 您可能想要std::getline(std::cin, name);
相反,它將讀取整行(即您輸入的所有內容,直到回車)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.