如何从文本文件中一次读取一个字符

How to read one character at a time from text file

本文关键字:读取 一次 一个 字符 文件 文本      更新时间:2023-10-16

这是我的函数,其中包含以下代码。注意:它已经在主文件中声明并且运行良好。

void displaySeatingChart(char seats[][colvalue], float prices[rowvalue])
{
string filename = "seatingChart.dat";
ifstream inFile(filename);
for (rows = 1; rows <= rowvalue; rows++)
{
string newLine;
cout << "Row #" << rows << "t";
for (cols = 1; cols <= colvalue; cols++)
{
inFile >> newLine;
cout << newLine;
}
cout << endl;
}
}

rows是15岁,cols是30岁。我的问题是cout << newline打印整个文件(基本上都是#(。我怎么能只打印 15 个字符而不像 1500 个字符?

inFile >> newLine;

这将读取所有内容,直到出现空格字符。如果您的文件在一行中包含所有字符并且不包含空格,则上面的行读取整个文件的内容是有意义的。

要一次读取一个字符,请使用

char c = inFile.get();

您的内部循环将是:

for (cols = 1; cols <= colvalue; cols++)
{
char c = inFile.get();
cout << c;
}

有关其他信息,请参阅文档以了解istream::get()