G++ 编译,可执行文件不会 运行
G++ Compiles, Executable Won't Run
我一直在使用文本编辑器和 g++ 编译和 运行 程序一段时间,但由于某种原因,它今天停止工作了。
它会编译而没有错误,但是当我尝试 运行 可执行文件时,它什么也没做。没有错误,没有输出。没有什么。这是我正在尝试 运行.
的代码
#include <iostream>
#include <fstream>
int main(){
// Initializes variable.
int coordinatePair;
// Creates an object to use for the file.
std::ofstream fileReader;
// Initiates a for-loop to get the value of each variable.
for(int i = 0; i == 5; i++){
std::cout << "Please enter the x-coordinate of your coordinate pair. " << std::endl << "You have " << 5 - i << " pairs left to enter." << std::endl;
std::cin >> coordinatePair;
// Opens the file.
fileReader.open("points.txt");
// Writes the user's values to the file.
fileReader << coordinatePair << std::endl;
// Closes the file.
fileReader.close();
}
}
在终端中,我为文件位置创建了一个目录...
cd ~/file location
然后我编译了。
g++ points_out.cpp -o points_out
我尝试 运行 它。
./points_out
然后什么也没发生。没有错误消息,没有输出,什么都没有。虽然代码不是很有效(我最好在 for 循环之外打开和关闭文件。)它应该仍然 运行。我尝试输入不正确的代码以查看会发生什么,它给了我正确的错误代码。我也试过了
g++ -W -Werror points_out.cpp
...这也没有给我任何错误代码。我尝试为本周早些时候编译的另一个 .cpp 文件创建一个新目录,并且 运行 它工作得很好。出于某种原因,这个不会 运行。而且我相信它正在编译,因为正在创建可执行文件。我也确信它不是 运行ning,因为没有创建文本文件。
我让这个东西编译成功并且 运行 一次 并且它在编译时创建了文本文件。这是我 运行 第一次遇到 g++ 问题。我到处寻找解决方案,但大多数遇到此问题的人都没有这样做
./points_out
部分或遇到 MingW 问题或需要卸载 Avast。 None 这些是我遇到的问题,所以我很茫然。
此外,不确定这是否有帮助,但是 运行ning
g++ --version
得到以下输出:
g++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
程序什么也不做并成功完成的行为是正常的。
C++ for 循环在进入循环体之前评估循环条件。当循环体完成时,可选的 post 循环表达式被求值,程序 returns 进入条件检查。
因此您的代码将值 0
分配给 i
,然后在允许进入循环之前测试是否 i == 5
。
不完全清楚你的意图,但你可能不是这个意思
for (int i = 0; i < 5; i++)
我们可以用这段代码快速演示:
#include <iostream>
int main() {
std::cout << "original loop:\n";
for (int i = 0; i == 5; i++)
std::cout << i << '\n';
std::cout << "corrected loop:\n";
for (int i = 0; i < 5; i++)
std::cout << i << '\n';
}
-- 附录--
大多数程序员会想到添加类似简洁、无条件的东西
std::cout << "hello world\n";
在他们的程序顶部验证它不是 运行 与不工作。
我一直在使用文本编辑器和 g++ 编译和 运行 程序一段时间,但由于某种原因,它今天停止工作了。
它会编译而没有错误,但是当我尝试 运行 可执行文件时,它什么也没做。没有错误,没有输出。没有什么。这是我正在尝试 运行.
的代码#include <iostream>
#include <fstream>
int main(){
// Initializes variable.
int coordinatePair;
// Creates an object to use for the file.
std::ofstream fileReader;
// Initiates a for-loop to get the value of each variable.
for(int i = 0; i == 5; i++){
std::cout << "Please enter the x-coordinate of your coordinate pair. " << std::endl << "You have " << 5 - i << " pairs left to enter." << std::endl;
std::cin >> coordinatePair;
// Opens the file.
fileReader.open("points.txt");
// Writes the user's values to the file.
fileReader << coordinatePair << std::endl;
// Closes the file.
fileReader.close();
}
}
在终端中,我为文件位置创建了一个目录...
cd ~/file location
然后我编译了。
g++ points_out.cpp -o points_out
我尝试 运行 它。
./points_out
然后什么也没发生。没有错误消息,没有输出,什么都没有。虽然代码不是很有效(我最好在 for 循环之外打开和关闭文件。)它应该仍然 运行。我尝试输入不正确的代码以查看会发生什么,它给了我正确的错误代码。我也试过了
g++ -W -Werror points_out.cpp
...这也没有给我任何错误代码。我尝试为本周早些时候编译的另一个 .cpp 文件创建一个新目录,并且 运行 它工作得很好。出于某种原因,这个不会 运行。而且我相信它正在编译,因为正在创建可执行文件。我也确信它不是 运行ning,因为没有创建文本文件。
我让这个东西编译成功并且 运行 一次 并且它在编译时创建了文本文件。这是我 运行 第一次遇到 g++ 问题。我到处寻找解决方案,但大多数遇到此问题的人都没有这样做
./points_out
部分或遇到 MingW 问题或需要卸载 Avast。 None 这些是我遇到的问题,所以我很茫然。
此外,不确定这是否有帮助,但是 运行ning
g++ --version
得到以下输出:
g++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
程序什么也不做并成功完成的行为是正常的。
C++ for 循环在进入循环体之前评估循环条件。当循环体完成时,可选的 post 循环表达式被求值,程序 returns 进入条件检查。
因此您的代码将值 0
分配给 i
,然后在允许进入循环之前测试是否 i == 5
。
不完全清楚你的意图,但你可能不是这个意思
for (int i = 0; i < 5; i++)
我们可以用这段代码快速演示:
#include <iostream>
int main() {
std::cout << "original loop:\n";
for (int i = 0; i == 5; i++)
std::cout << i << '\n';
std::cout << "corrected loop:\n";
for (int i = 0; i < 5; i++)
std::cout << i << '\n';
}
-- 附录--
大多数程序员会想到添加类似简洁、无条件的东西
std::cout << "hello world\n";
在他们的程序顶部验证它不是 运行 与不工作。