0
我正在寫一個函數,打開一個文件,其中打開模式取決於用戶的選擇。下面給出的函數goto語句vs遞歸
void open_file(char T)
{
string name;
open:
cout << "\n Enter filename/path : ";
cin >> name;
if(T == 'N')
file.open(name);
else
if(T == 'O')
{
file.open(name, ios::app | ios::in);
if(!file)
{
cout << "\n File not found. Try again";
goto open;
}
file.seekg(0);
}
}
如果沒有找到該文件,程序去往open:
,爲我所用的賞識goto
聲明。請注意0在申報name
後開始。
我想知道,如果goto open
是更少的內存效率/比open_file('O')
或不慢,因爲open_file('O')
將在每次調用時聲明name
。 請注意:人們給予不使用goto
陳述的唯一原因是他們使程序更復雜。
你的意思是'while(file){// ...}'? –
你沒有在你的問題中定義文件,所以我定義了一個布爾值來檢查打開是否成功。 – Shloim
不錯,但它是一個fstream類的成員函數。無論如何,非常感謝! –