【发布时间】:2023-03-09 23:32:01
【问题描述】:
我主要使用 Linux 进行开发,但 Windows 是办公室的标准操作系统。于是我就为Windows环境写了一个简单的文件操作代码。
以下代码(用于打印文件行)在 Linux 中运行良好,但在 Windows 中编译时,运行可执行文件后没有输出。
#include <iostream>
#include <fstream>
#include <string>
int main()
{
std::ifstream stream;
stream.open("n.txt");
if(!stream)
{
std::cerr << "Rrror opening file.\n";
return 1;
}
std::string result;
while(std::getline(stream, result))
{
std::cout << result << endl;
}
return 0;
}
以下是我在Powershell中给出的编译命令:
g++ manip.cpp
文本文件n.txt如下:
*DLOAD
362521,P1,-0.000129208
362524,P2,-1.67058e-005
362525,P1,-0.000105441
362528,P2,-1.87842e-005
362529,P1,-0.000106145
362532,P2,-1.84522e-005
362533,P1,-0.000105311
如何使用现有编译器运行我的程序?
【问题讨论】:
-
如何在 Windows 中不起作用?你在 Windows 中使用什么编译器?可执行文件和您尝试读取的文件是否在 Windows 的同一目录中?您如何在 Windows 中测试您的程序?
-
@JoachimPileborg 我试图列出上面的编译器。请建议您知道的任何其他方式来获取编译器。我是在 Windows 中编译程序的新手。是的,文件在同一目录中。我在 powershell 中使用
.\a.exe来测试可执行文件。 -
好的,那么程序编译和链接正常吗?并且您要读取的文件与可执行文件位于同一目录中?然后它应该工作。除了可能有一个问题(我会添加一个答案)。
-
在以后的问题中,请描述如何某些东西不起作用。它会给出编译器或链接器错误吗?然后将 complete 和 unedited 错误日志添加到问题中。程序运行时会崩溃吗?然后这样说,如果可能的话,也添加一个调试器回溯。输出不是你所期望的吗?然后将预期的 和 实际输出添加到问题中。这将使您的问题更容易诊断,并使我们更容易为您提供帮助,而不是我们只是猜测(这是我对答案所做的)。
-
检查
stream.open("n.txt")之后的流状态。尝试使用stream.good()或stream.bad()或stream.fail()。
标签: c++ linux windows powershell