【发布时间】:2013-04-04 23:08:40
【问题描述】:
尝试将文件从文件中的第一个字节读取到用户指定的字节。我需要逻辑上的帮助。例如,如果文件只有字母 a 到 z,我只想读取并显示前 10 个。这是我写的一段:
char byte;
inFile.seekg(0L,ios::beg);
inFile.get(byte);
cout << byte;
for(int i = 0; i < num; i++); //num is an int specified by the user.
{
inFile.seekg(1, ios::cur);
inFile.get(byte);
cout << byte;
}
【问题讨论】:
-
你有什么问题?代码有效吗?如果不是,有什么问题?
-
您的问题可能是您不需要在每次读取后向前搜索 1 个字节。
get电话已经做到了。您的代码可能每隔一个字节就跳过一次。此外,您读取的字节比您需要的多一个字节,因为除了循环之前的 get 之外,您的循环从 0 变为 num-1。 -
seek适用于您不想从文件开头按顺序读取的情况。 -
顺便说一句,您还应该考虑检查文件的结尾...您可以阅读:cplusplus.com/reference/ios/ios/eof
-
是要跳过多个字节还是要搜索一个字节值?