簡體   English   中英

如何從文本文件中讀取特定數量的字符

[英]How to read a specific amount of characters from a text file

我試着這樣做

 #include <iostream>
 #include <fstream>

using namespace std;

int main()
{
    char b[2];
    ifstream f("prad.txt");
    f>>b ;
    cout <<b;
    return 0;
}

它應該讀取2個字符,但它讀取整行。 這適用於另一種語言但由於某種原因無法在C ++中運行。

您可以使用read()指定要讀取的字符數:

char b[3] = "";
ifstream f("prad.txt");

f.read(b, sizeof(b) - 1); // Read one less that sizeof(b) to ensure null
cout << b;                // terminated for use with cout.

這適用於另一種語言但由於某種原因無法在C ++中運行。

有些事情因語言而異。 特別是,在這種情況下,你已經碰到了這樣一個事實:在C ++中,指針和數組幾乎沒有什么不同。 該數組作為指向char的指針傳遞給operator >>,它被解釋為字符串指針,因此它對char緩沖區執行的操作(直到寬度限制或行尾,以先到者為准)。 當發生這種情況時,你的程序應該崩潰,因為你的緩沖區溢出了。

istream& get (char* s, streamsize n );

從流中提取字符並將它們作為c字符串存儲到從s開始的數組中。 提取字符,直到提取(n-1)個字符或找到分隔字符'\\ n'。 如果在輸入序列中到達文件末尾或者在輸入操作期間發生錯誤,則提取也會停止。 如果找到分隔字符,則不從輸入序列中提取分隔字符,並將其保留為要提取的下一個字符。 如果要提取(並丟棄)此字符,請使用getline。 用信號通知c-string結尾的結束空字符會自動附加在s中存儲的內容的末尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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