【发布时间】:2012-06-13 07:56:08
【问题描述】:
我想知道是否有 C++ 方法可以打开文件并逐行读取输入。
我遇到了以下完成任务的代码:
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ifstream myfile;
myfile.open ("example.txt");
return 0;
}
我们鼓励我不要使用任何 C 函数或命令。
问题是,我的“example.txt”是一个字符串的形式,而使用str.c_str()是一个C函数,所以我想我有两种方法可以解决这个问题。
还有其他方法可以逐行读取文件中的输入吗?也许使用可以接受字符串作为文件路径参数的东西?有 C++ 做事的方式吗? :)
或者,是否有另一种方法可以将字符串转换为 const char *,这正是 myfile.open() 函数所需要的?
非常感谢!
编辑:由于缺乏实践和研究,我认为 c_str() 是一个 C 函数,但事实并非如此。我很抱歉。因为不是,所以我找到了答案。
【问题讨论】:
-
c_str()不是 C 函数,它是标准 C++ 库类 (std::string) 的合法成员函数。我不明白你的反对意见。这个问题似乎与您逐行阅读文件问题完全正交,还是我误解了? -
您说“完成任务的以下代码:”但您发布的示例没有。复制粘贴错误?
-
另外,你说“我有两种方法可以解决这个问题”,但你没有说问题是什么,或者你必须用哪两种方法来解决它。
-
如果我正确阅读了您的问题,您希望完全避免使用像
"example.txt"这样的字符串文字,对吗?这可能会产生问题。 -
@Mr Lister,没错,但是如果 str.c_str() 不是 C 函数,那么我会使用它。我向大家道歉,这是我的错误。我粘贴的代码是为了说明一行,但我认为粘贴上下文会使事情更清楚。我将编辑帖子。