[英]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.