我是控制应用程序的新手,并希望得到一些指示......
我创建了一个新的控制台应用程序(未完成但应该正常工作),我选择了win32控制台应用程序,然后选择了“空项目”
这是我的代码:
#include <iostream>
void main() {
struct dude {
string name;
int age;
} about;
about.name = "jason";
about.age = 4000;
cout << about.name << " " << about.age << endl;
}
我得到以下错误:
------ Build started: Project: Test, Configuration: Debug Win32 ------
Compiling...
codey.cpp
.\codey.cpp(6) : error C2146: syntax error : missing ';' before identifier 'name'
.\codey.cpp(6) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
.\codey.cpp(6) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
.\codey.cpp(10) : error C2039: 'name' : is not a member of 'main::dude'
.\codey.cpp(5) : see declaration of 'main::dude'
.\codey.cpp(12) : error C2065: 'cout' : undeclared identifier
.\codey.cpp(12) : error C2039: 'name' : is not a member of 'main::dude'
.\codey.cpp(5) : see declaration of 'main::dude'
.\codey.cpp(12) : error C2065: 'endl' : undeclared identifier
Build log was saved at "file://c:\Users\Jason\Documents\Visual Studio 2008\Projects\Test\Test\Debug\BuildLog.htm"
Test - 7 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
有人可以告诉我如何调试这个吗?我在这里做错了什么?
<小时/> 工作...
#include <iostream>
#include <string>
struct Dude {
std::string name;
int age; };
int main(int i)
{
while(i<4000)
{
i++;
using namespace std;
Dude jason = { "Jason", i };
cout << jason.name << " is " << jason.age << " years old.\n";
}
return 0;
}
谢谢大家的帮助:D
答案 0 :(得分:6)
正确的代码应如下所示:
#include <iostream>
#include <string>
using namespace std;
struct dude {
string name;
int age;
};
int main() {
struct dude about;
about.name = "jason";
about.age = 4000;
cout << about.name << " " << about.age << endl;
return 0;
}
编辑:添加必要的包含以便编译。另外,作为最佳实践,在函数外部移动了类型定义。
答案 1 :(得分:6)
#include <iostream>
#include <string>
struct Dude {
std::string name;
int age;
};
int main() {
using namespace std;
Dude jason = { "Jason", 4000 };
cout << jason.name << " is " << jason.age << " years old.\n";
return 0;
}
没有特别的顺序:
std
命名空间中
using namespace std;
,而不是在该功能正文中键入std::
<string>
标题修复这些问题并不是真正的调试,你只需要学习正确的语法。确保你有一本好书(例如Koenig和Moo的Accelerated C ++),好老师也不会受伤。
答案 2 :(得分:2)
除Joy's answer外,您还需要使用std
命名空间:
std::cout << about.name << " " << about.age << endl;
另外,你想要实现什么目标?如果dude
是一个班级,可能会更好吗?
答案 3 :(得分:2)
您的意思是如何将其转换为编译!
你忘记了
using namespace std;
我认为你应该pick up a good C++ book,花一些时间阅读它,然后来到网站。只是一个真诚的建议,没有冒犯。