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