2015-09-01 34 views
0

我最近對C++進行了測試。它已經完成,但我只知道我的分數,不知道正確的答案。有兩個問題:C++中的流同步

1.是否可以使用標準函數同步C++流? (是或否)

2.使用標準函數可以將C++流與stdio輸入/輸出同步嗎? (是或否)

我不知道第一個問題的答案。第二個問題的答案是肯定的,因爲我們有功能ios_base::sync_with_stdio()

測試中沒有上下文,它是'一般C++知識測試'。所以我無法猜測上下文。雖然它是C++ 03的標準,但我認爲多線程的同步已經結束了。

什麼是正確答案? 謝謝。

+3

是的,用['basic_ios :: tie()'](http://en.cppreference.com/w/cpp/io/basic_ios/tie) – 0x499602D2

+2

至少不清楚這個問題涉及到什麼!我會猜測沿着0x499602D2的行,但沒有上下文的課程,目前還不清楚同步是指輸入和輸出之間(使用'std :: basic_ios <...> :: tie()'的答案是「))外部和內部表示(使用'std :: ios_base :: unitbuf'的anwer爲「yes」),或者在線程之間(答案是「不,不是」)。 –

+0

@DietmarKühl,即使對於第三個變體,它們也可以使用std :: mutex進行同步,例如。取決於同步的含義。 – SergeyA

回答

0
  1. C++流可以使用標準函數進行同步嗎? (是或否)

是的,他們可以使用tie()。綁定流是在此流對象中的每個I/O操作之前刷新的輸出流對象。

  1. 使用標準函數可以將C++流與stdio輸入/輸出同步嗎? (是或否)

是,它們可通過操縱緩衝,使用單個緩衝器與兩個流,使用rdbuf()(和sync())。