簡體   English   中英

來自存儲在char數組中的文件的c ++行

[英]c++ line from file stored in char array

我希望能夠使用函數將整行讀入字符數組。

輸入文本示例為:

Schmidt, Helga
Alvarez, Ruben
Zowkowski, Aaron
Huang, Sun Lee
Einstein, Beverly

但是,我不確定如何將整行字符讀入數組。 我知道>>的分隔符是空格,但是我不確定是否可以將分隔符更改為'\\ n'?

void buildList(char (*array)[25], ifstream& inputFile){
    string line;
    for (int i = 0; i < 5; i++)
        getline(inputFile, line);
        array[i] = line.c_str();     
}

當前,這只會在我的輸入中讀取姓氏或名字,而不是整行。 我不確定該如何更改。 謝謝。

首先,您肯定要在這里使用std::string 完成后,您可以使用std::getline

std::vector<std::string>
buildList( istream& input )
{
    std::vector<std::string> results;
    std::string line
    while ( std::getline( input, line ) ) {
        results.push_back( line );
    }
}

這將使代碼更簡單,更健壯。

如果您必須使用這種損壞的接口,則可以使用成員函數getline

for ( int i = 0; i != 5; ++ i ) {
    input.getline( array[i], maxLength );
}

另外:函數永遠不要std::ifstream&作為參數(除非它將打開或關閉文件)。 應該使用std::istream&

用這個-

void buildList(char (*array)[25], ifstream& inputFile){
    for (int i = 0; i < 5; i++)
        std::inputFile.getline(array[i],50);
}

getline的第二個參數是要寫入字符數組的最大字符數。

暫無
暫無

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

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