[英]Declare a variable and initialize it from a file, all at once
這是我的代碼:
ifstream f("data.txt");
string dat;
f >> dat;
有什么方法可以將其組合為一條語句,以便可以一次聲明和初始化變量嗎?
我試過了
string dat << f;
但這給了我一個語法錯誤。
最簡潔的答案是不”。
更長的答案是:“您可以執行此操作,但遠非直接執行”。
template <typename T>
T read_from_file(const char *fname)
{
T v;
ifstream f("data.txt");
f >> v;
return v;
}
...
string dat = read_from_file("data.txt");
但是,如果您僅擁有一個數據條目,那么這種方法就無法很好地發揮作用[當然,如果存在帶有為該類聲明了operator<<
的結構或類,則可以將其用於結構,但是您可以不能使用它來讀取包含游戲前十名最高得分的10個結構的數組]。
盡管上面的代碼是“聰明”的小段代碼,但是在幾行代碼中打開文件后讀取數據的更“自然”的代碼將更加清晰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.