我正在尝试学习 C++,但我阅读或查找的大部分教程和书籍都教你这个...
(我假设像大多数教程一样,他们一开始就在 win32 控制台或 CLR 控制台中教授编码。在任何一种情况下,以下内容都不起作用。)
#include <iostream>
int main( )
{
std::cout << "Hello World\n";
return (0);
}
我的 IDE 是 Visual C++ 2008 Express 版,他们接受这样的代码
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
或者像这样
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{
Console::WriteLine(L"Hello World");
return 0;
}
老实说,我对这些都没有区别,我不确定我是否应该只下载一个旧的编译器以便它工作。如果有人能告诉我这些有什么区别以及从那里去哪里。这将有很大帮助。谢谢 [编辑]
我正在尝试做一个简单的 hello world。但是我收到错误“系统找不到指定的路径”。我有显示错误的屏幕截图。当我在构建文件之前明确保存文件时,它还说我的项目已过时。显然它找不到可执行文件。我去了调试文件夹,没有看到任何 .exe 文件。
[已编辑]
好的,现在当我尝试构建项目时,出现以下错误
1>------ Rebuild All started: Project: test, Configuration: Debug Win32 ------
1>Deleting intermediate and output files for project 'test', configuration 'Debug|Win32'
1>Compiling...
1>stdafx.cpp
1>Compiling...
1>test.cpp
1>c:\users\numerical25\desktop\test\test\test.cpp(1) : warning C4627: '#include <iostream>': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header
1>c:\users\numerical25\desktop\test\test\test.cpp(6) : error C2653: 'std' : is not a class or namespace name
1>c:\users\numerical25\desktop\test\test\test.cpp(6) : error C2065: 'cout' : undeclared identifier
1>Build log was saved at "file://c:\Users\numerical25\Desktop\test\test\Debug\BuildLog.htm"
1>test - 2 error(s), 1 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
这是我使用的代码
#include <iostream>
#include "stdafx.h"
int main( )
{
std::cout << "Hello World\n";
return (0);
}
注意:我尝试在有和没有#include "stdafx.h"的情况下使用它当我在没有#include "stdafx.h"的情况下尝试时,它说我可能会丢失它。
最佳答案
不确定你在问什么。您给出的前两个示例是有效的 C++ 程序,应该(将)用 VC++ 编译。第三个示例是必须使用/CLR 编译器开关编译的 C++/CLI 程序(这称为托管 C++)。
编辑:添加更具体的信息(来自下面的评论):
前两个示例是标准( native )C++(尽管第二个示例具有 MS 专有的宏)。它们编译为 native 代码。第三个是 C++/CLI(C++ 的“托管”扩展)。它编译为托管 (.NET) 代码。只有第三个片段以任何方式与 .NET 框架交互。使用 VS 2008 中的适当项目,这三者绝对是可构建和可运行的(无需命令行)!
根据您的最新更新,看起来您可能已经修改了一些项目属性并更改了一些路径。该应用程序正在构建,但是当您尝试通过 VS 运行它时(顺便说一句,您应该使用 <Ctrl>+F5 来执行此操作),找不到可执行文件(有几种方法可以通过更改或播放来搞砸它各种设置)。
请注意构建和运行之间的区别。构建是编译和链接源代码的过程。运行正在启动生成的可执行文件。您似乎对这些感到困惑(从您对“...过时”对话框的提示来看)。如果您在对项目进行更改后尝试运行而不重建,出现“...过时”对话框是正常的(即使该更改已保存)。只需确保单击"is"。您需要先构建项目,然后才能运行它。
我的建议是完全删除您的项目和解决方案。按照这个现在非常重量级的线程中其他地方的建议,创建一个新的空项目,并且不要修改任何项目设置。如果这不起作用,那就是严重错误了!
另一个编辑:只是为了完成,因为这个问题一直在变化:
正如其他人已经指出的那样,第一个片段的最终问题是使用了预编译 header (PCH)。 PCH 在新的 VS C++ 项目中默认打开。它们的目的是在许多实现文件包含同一组头文件时加快编译速度——防止编译器必须为每个编译单元解析头文件。
你有三个选择:
#include 执行任何操作。)#include s 在“stdafx.h”中。在你的情况下,你会把 #include <iostream>在“stdafx.h”中。#include s after `#include "stdafx.h"。 Microsoft 要求“stdafx.h”是编译单元中的第一个包含文件。关于c++ - 获得适用于 C++ 的正确编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2304834/
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击
我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
question的一些答案关于redirect_to让我想到了其他一些问题。基本上,我正在使用Rails2.1编写博客应用程序。我一直在尝试自己完成大部分工作(因为我对Rails有所了解),但在需要时会引用Internet上的教程和引用资料。我设法让一个简单的博客正常运行,然后我尝试添加评论。靠我自己,我设法让它进入了可以从script/console添加评论的阶段,但我无法让表单正常工作。我遵循的其中一个教程建议在帖子Controller中创建一个“评论”操作,以添加评论。我的问题是:这是“标准”方式吗?我的另一个问题的答案之一似乎暗示应该有一个CommentsController参
我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:
我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co
我需要一些关于TDD概念的帮助。假设我有以下代码defexecute(command)casecommandwhen"c"create_new_characterwhen"i"display_inventoryendenddefcreate_new_character#dostufftocreatenewcharacterenddefdisplay_inventory#dostufftodisplayinventoryend现在我不确定要为什么编写单元测试。如果我为execute方法编写单元测试,那不是几乎涵盖了我对create_new_character和display_invent
当我使用has_one时,它工作得很好,但在has_many上却不行。在这里您可以看到object_id不同,因为它运行了另一个SQL来再次获取它。ruby-1.9.2-p290:001>e=Employee.create(name:'rafael',active:false)ruby-1.9.2-p290:002>b=Badge.create(number:1,employee:e)ruby-1.9.2-p290:003>a=Address.create(street:"123MarketSt",city:"SanDiego",employee:e)ruby-1.9.2-p290