簡體   English   中英

一次聲明一個變量並從文件中對其進行初始化

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM