c++ - 在 C++ 中,使用 ifstream 打开一个 csv 文件
问题描述
我正在尝试使用 ifstream 在 C++ 中打开一个 csv 文件,文件路径名中有一个目录。该文件确实驻留在指定的目录位置,但我在执行代码时观察到变量 inFile 。到目前为止,我的研究表明代码是正确的,但显然有些地方是错误的。有什么建议么?
谢谢,KG
#include <string>
#include <fstream>
#include <iostream>
virtual void run()
{
string file_dir = "/home/datafiles/";
string csvFile = file_dir + "/myFile.csv";
ifstream inFile;
inFile.open("csvFile", ios::in);
// file check to see if file is open
if(!inFile.is_open()) {
cout << "error while opening the file" << endl;
}
}
解决方案
在同事的帮助下,我找到了我的 csv 文件打开问题的答案。
@David - 您建议删除“inFile.open”代码行中的双引号。除了删除双引号之外,我还需要添加 c_str(),它“返回指向以空字符结尾的字符数组的指针,其数据与存储在字符串中的数据相同”,.data() 也执行相同的功能( cppreference.com)。
@ user4581301 - 我也知道 ios::in 隐含在 ifstream 中,仅将其包含在此处作为参考;谢谢。
修改后的代码如下:
#include <string>
#include <fstream>
#include <iostream>
virtual void run()
{
string file_dir = "/home/datafiles/";
string csvFile = file_dir + "/myFile.csv";
ifstream inFile;
inFile.open(csvFile.c_str(), ios::in);
// file check to see if file is open
if(!inFile.is_open()) {
cout << "error while opening the file" << endl;
}
}
真的很感谢所有的帮助。
享受,KG
推荐阅读
- r - 提取 R 中 data.frame 的名称作为字符,而不创建所有 data.frames 的列表,然后从该列表中调用
- r - 闪亮的反应值更新顺序
- spring - 使用spring hibernate在代码中不重复的想法
- android - 在 facebook android 应用程序上单击我的网站链接给出 net::ERR_NAME_NOT_RESOLVED
- r - 将 content_transformer 与 udpipe_annotate 一起使用
- php - 将生成的二维码图像保存到路径中
- python - 可以隐式检查“零”或“空”的变量的类型
- hadoop - 安装hdp-3.0时找不到与redhat6匹配的操作系统错误
- gmail - Sendmail 和反向 ipv6
- php - 如何在 Yii 中将 URL 的语言更改为单一语言?