【发布时间】:2010-03-21 03:34:43
【问题描述】:
好的,我的 getline 有问题。
我有一个包含几个字符串的文件。我自己创建的,每个字符串都放在单独的一行上。
Ex. textfile.txt
Line 1
Line 2
Line 3
Line 4
//Little snip of code
ifstream inFile("textfile.txt");
getline(inFile, string1);
当我调试程序并要求它打印出 string1 时,它显示“Line 1\r”已保存到 string1。我知道这是我在创建文件时实际按 Enter 键的。此问题导致我的程序出现分段错误。我知道我的代码可以工作,因为如果我先使用 ofstream 写入文件,然后再读入,它就可以工作。
所以对于我的问题,他们是否仍然使用 getline 函数而不使用转义序列 \r?如果我不清楚,请告诉我。
【问题讨论】:
-
这里没有足够的代码来确定问题可能是什么。
-
我们能看到更大的代码示例吗?
-
如果您在调试器中检查 sd::strings,字符串末尾很可能有“额外”字符 - 这是可以预料的,因为字符串的性质而不是错误,您需要在检查它们时考虑字符串的 size()。