- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 C++ 中的 .csv 文件中读取。调用 myfile.open(file) 后,is_open 返回 true,但 getline 仅返回空字符串。
我曾尝试使用 vector 来读取行,然后将 vector 数据写入变量以进行读取,但这也只返回了空字符串。
std::ifstream csvFile;
std::string line = "!", temp= "...";
csvFile.open("file.csv");
if(csvFile.is_open()) {
std::cout << "open\n";
std::cout << line << "\n";
if(getline(csvFile, line)) {
std:: cout << line << "\n";
} else {
std::cout << temp << "\n";
}
}
else {
std:: cout << "not opening\n";
}
std:: cout << line;
我的运行后输出如下
[ctest] open
[ctest] !
[ctest] ...
[ctest]
如图所示,getline() 只返回一个空字符串,尽管文件本身不是空的。
这些是 csv 文件的前 20 行左右,我已确保该文件位于当前工作目录中。
Alpha002
2019 年 6 月 13 日 16:55:54
428,1.61,-1.31,-0.13,0,0
448,1.61,-1.47,-0.13,0,0
468,1.68,-1.07,-0.44,0,0
488,1.61,-1.39,-0.76,0,0
508,1.61,-1.47,-0.68,0,0
3528,1.61,-1.55,-0.36,0,0
3548,1.61,-1.31,-0.28,0,0
3568,1.68,-1.15,-0.36,0,0
3588,1.68,-1.63,-0.76,0,0
3608,1.68,-0.76,-0.68,0,0
3628,1.68,-1.15,-0.21,0,0
3648,1.68,-0.76,-0.28,0,0
3668,1.68,-1.39,-0.13,0,0
3688,1.68,-1.07,-0.21,0,0
3708,1.61,-1.47,0.03,0,0
我不确定如何从这里开始,因为除此之外我找不到任何问题,欢迎任何建议!
最佳答案
我发现了问题,我使用的文件本身有问题。我尝试使用相同的方法从另一个文件读取,并且没有问题。感谢所有评论试图提供帮助的人!
关于c++ - is_open 返回 true,但 getline 只返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56771601/
我一直在 RPi2 上使用代码与 RS485 Shield 进行通信驱动各种继电器。我最近得到了一个 RPi3,之前在 RPi2 上运行的代码在 RPi3 上出现了错误。 首先,我知道蓝牙 Contr
如果我在我的代码中包含 if 测试,则会返回错误消息,我不确定为什么。当它不被使用时,我的程序会陷入一个循环,永远不会到达文件的末尾。我不明白出了什么问题。 int countlines() {
这个问题在这里已经有了答案: Where to place file in order to read? (4 个答案) 关闭 6 年前。 为什么我的 is_open() 总是失败并进入显示错误消息
我在尝试加载文本文件时收到访问冲突写入位置错误。在调试时,我注意到我的“is_open()”和“good()”检查都通过了,因为我到达了“while (std::getline(myfile, lin
我有一个类似于下面的函数,它是 const 并且需要在继续之前检查文件流是否打开: bool MyClass::checkSomeStuff() const { // Where output
我用 C++ 编写了一段代码,该代码从文本文件中读取或使用 ifstream/ofstream 创建新文件。我想用 fstream 的 .is_open 成员函数添加一个检查,以查看文件是否已成功打开
我想通过 fstream 将数据写入文件,并在完全(打开-写入-关闭)成功与否时输出。我还想编写尽可能少的代码。这是关于 C++03 的。 解决方案 1(似乎是最优的): std::fstream f
if(!file) 和 if(!file.is_open()) 有什么区别?我用它们来检查文件是否已成功打开/读取。 #include #include using namespace std; in
观察 我根据这个server构建了一个演示应用程序在我使用 C++11 std 替换原先在 boost 中的所有内容后使用 ASIO 的示例。服务器可以显示类成员 tcp_session::start
阅读 Savitch 的 Problem Solving in C++,std::ifstream::fail 以检查文件是否已正确打开(ifstream 或 ofstream)。 正如我第一次看到的
我正在使用 QtCreator 3.6.0 - 基于 Qt 5.5.1(Clang 6.1 (Apple),64 位)。 我正在尝试读取一个文本文件,但我一直收到此错误消息, Unable to op
我正在尝试从 C++ 中的 .csv 文件中读取。调用 myfile.open(file) 后,is_open 返回 true,但 getline 仅返回空字符串。 我曾尝试使用 vector 来读取
#include #include using namespace std; void Readfile(string fname) { ifstream infile(fname);
文件的初始化: ifstream file("filename.txt"); if (file.is_open()) 和 if (!file.fail()) 有什么区别? 我应该使用什么来确定文件是否
也许是个伪问题,但我需要一个明确的答案。这些函数的返回有什么不同吗 int FileExists(const std::string& filename) { ifstream file(file
我已经尝试了几个小时了,但我终究无法让我的 DirectX12 应用程序编写一个简单的文件... 关于我的设置的一些信息: 更新了 Windows 10。 DirectX12 默认的“旋转立方体”应用
尝试使用 fstream 在 C++ 中读取文件。但是 is_open() 函数始终返回 0 结果,而 readline() 不读取任何内容。请参阅下面的代码片段。 #include #includ
我是一名优秀的程序员,十分优秀!