使用此代码,我从文件中读取了一个字符串。
pbuf = infile.rdbuf();
size = pbuf->pubseekoff(0, ios::end, ios::in);
pbuf->pubseekpos (0,ios::in);
buf = new char[size];
pbuf->sgetn(buf, size);
str.assign(buf, buf+size);
我必须读取临时变量中的数据,char* buff
因为 sgetn 需要 a char*
not a string
。
因此,在问我的实际问题之前,如果有人知道从可能包含空格字符的文件中读取字符串的更好方法,请告诉我(直到 eof 才循环)。
文件内容为:
blah blah blah
blah blah in a new line
但是我得到的是:
blah blah blah
blah blah in a new line═</p>
玩弄代码,我注意到随着我添加更多\n
字符,奇怪字符的数量增加了。似乎当我尝试获取文件大小时,每个\n
字符占用 2 个字节的空间,但是在字符串中它只占用 1 个字节,因此我的字符串看起来很奇怪。我该如何避免这种情况?