【发布时间】:2012-12-10 21:33:08
【问题描述】:
我刚从 Windows 迁移到 Linux,我正在尝试创建一个简单的应用程序,它可以打开控制台、显示消息并等待按键关闭。我已经在 Windows 上创建了它并且它可以工作,然后我只是将文件移动到 Linux。没有做任何改变,只是用 g++ 编译它,我没有得到任何错误。问题是在 Linux (Ubuntu 12.04) 上我看不到控制台和一些要求我在关闭前按任意键的消息。我的代码就这么简单:
#include <iostream>
#include <cstdio>
int main() {
cout << "Writing file...\n";
FILE *myfile = fopen("testfile.txt", "w");
fwrite("test", sizeof(char), 4, myfile);
fclose(myfile);
cout << "Press any key to exit...\n";
cin.ignore();
return 0;
}
在 Windows 上,当我启动可执行文件时,控制台窗口将显示消息并在按任意键时关闭。在 Linux 上,当我执行程序时,我什么也得不到。它确实创建了 testfile.txt 文件并插入了文本,因此 cstdio 相关功能确实有效,但我看不到任何带有这些消息的控制台,我不明白为什么。也许我不知道如何在 Linux 上打开一个简单的可执行文件。我想要的是双击它并看到一个带有两条简单消息的控制台。你觉得我做错了什么?谢谢!
另外,我使用g++编译cpp文件:g++ -Wall -s -O2 test.cpp -o test
【问题讨论】:
-
您发布的代码甚至无法编译。但如果是这样,您将拥有一个名为
test的可执行文件,您可以通过在其所在目录中键入./test从控制台执行它。 -
听起来你是从桌面 gui 运行它 - Linux 上使用的不止一个,你可能需要指定哪一个(或至少你正在使用的发行版)。
-
对不起,我一个字母一个字母地输入了代码,我可能插入了一些错误的字符。代码编译,这不是问题。正如我所说,fwrite 有效,它创建了一个文本文件。我看不到的是一个向我显示消息的控制台。我不想为此使用终端,我只想单击它并打开带有消息的控制台