Domanda

  1. Secondo il riferimento, se uso ifstream infile ( "test.txt" , ifstream::in ); sarà Allow input operations on the stream. Ma quali sono alcuni degli esempi di " operazioni di input " ;?
  2. ifstream infile ( "test.txt" , ifstream::in | ifstream::binary ); È la sintassi giusta per usare più flag?
  3. Farà la differenza se cambio ifstream:: in iso::?

Grazie

È stato utile?

Soluzione

  
      
  1. Secondo il riferimento, se uso ifstream infile (" test.txt ",   ifstream :: in); consentirà input   operazioni sullo stream. Ma cosa sono   alcuni esempi dell'input "   operazioni quot &;?
  2.   

Lettura da un file che significherebbe tutto ciò che può supportare un flusso di input. Vedi istream funzioni membro. In genere, è possibile eseguire letture formattate (utilizzando >>) e non formattate (utilizzando read). Ricorda che ifstream è una specializzazione del modello basic_ifstream per il tipo char. A seconda delle esigenze, supponiamo di leggere il file codificato UTF-16, potrebbe essere necessario utilizzare una specializzazione diversa (wifstream) o persino utilizzare una locale speciale (leggere questo per saperne di più sulle localizzazioni).

  
      
  1. È ifstream infile (" test.txt ", ifstream :: in | ifstream :: binary);   la sintassi giusta per usare multiple   bandiere?
  2.   

Sì.

  
      
  1. Farà la differenza se cambio ifstream :: in iso ::?
  2.   

No.

Altri suggerimenti

Le operazioni di streaming sono extraction << e insertion >>. Quando si esegue quanto segue assumendo file è di fstream tipo:

file << 5 << 6.5 << "Hello World!"; // insertion of data (output)
file >> x >> y >> str; // exaction of data (input)

Puoi anche trattare stream come binary stream. In tal caso, non sembra davvero un & Quot; ifstream & Quot; di dati ma ciò ti dà accesso casuale ai dati. In alcuni casi non è possibile utilizzare la modalità binaria, soprattutto se i dati non sono disponibili come un flusso di rete. Inserimento ed Estrazione, sono le due operazioni principali sui flussi.

input stream viene creato come std::ios::in per impostazione predefinita. Pertanto, ios è ridondante in questo caso. Stai usando le bandiere correttamente.

tutti i flussi ereditano da <=>. Pertanto, i flag sono disponibili in entrambi i punti, puoi recuperarli da <=> direttamente o da <=>.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top