我有一個函數需要從ifstream(文件來自磁盤上的文件)或stringstream(內存中的文本)中讀取。C++從具有相同循環的ifstream或stringstream讀取
這是我想要做的一個例子:
void myFunction(bool file,stringstream& ss){
ifstream inFile;
string oneline;
if (file == true){
//code to open file with inFile
}
while (getline(file==true?inFile:ss, oneline)){
// ..process lines
}
...
...
不用說也不會編譯。任何人都可以提出一個適當的方式來實現這一目標?
請勿使用'file == true'。如果'file'已經是'true',它會給你'true';如果'file'是'false',則給你'true,所以沒有理由去做。實際上,因爲這是C++,所以'file == true'實際上可能會給某些應該被視爲真的值提供不正確的結果。 – zstewart
你是說我應該用這個代替來測試一個布爾值:if(file) – user1971455
是的。它更簡潔,編碼風格更好。比如'==','!=','<'等等都會產生一個布爾值,所以如果你已經有了一個布爾值,那麼你不需要使用比較運算符來得到一個布爾值。 – zstewart