0

所以我有这段代码:

ifstream sFile;
sFile.open(argv[1]);
stringstream ss;
unsigned char aChar;
string aString;

while (sFile >> noskipws >> aChar) {
    ss << noskipws << aChar;
}
ss >> noskipws >> aString;
cout << noskipws << aString << endl;

我的文件包含:“SHE SMELLS”

在标准输出中,我看到的只是“SHE”。我浪费了很多时间试图弄清楚这一点,有人可以帮我理解为什么会这样吗?

此外,这是否能够读取扩展 ascii 字母表中的字符?

4

1 回答 1

0

查看此页面以了解 noskipws:

http://www.cplusplus.com/reference/iostream/manipulators/noskipws/

在示例中,它显示了您遇到的问题,可以使用以下方法修复:

iss.seekg(0);

如果您这样做,这应该有效:

sFile.seekg(0);

在你的 while 循环之前。希望这是正确的/有帮助。

于 2012-07-24T00:09:32.750 回答