首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我有一些代码,无论我做多少谷歌搜索,我都不能解决.h中的编译器错误

我有一些代码,无论我做多少谷歌搜索,我都不能解决.h中的编译器错误
EN

Stack Overflow用户
提问于 2012-12-16 09:22:20
回答 2查看 115关注 0票数 0

我正在尝试生成一个测验程序,供学校使用。我的代码如下

main.cpp:

代码语言:javascript
复制
#include <cmath>
#include <ctime>
#include <string>

#include "getQuestion.h"

using namespace std;

int main() {
int mainMenuChoice;
ifstream Bibliography;
//string easyBib;
ifstream easyBib;
ifstream inputFile;

cout << "Quiz Menu\n\n";
cout << "1. Play Game!\n";
cout << "2. Bibliography\n";
cout << "3. Developer Info\n";
//cout << "4. Admin Menu\n";
cout << "4. Exit\n";
cout << "Menu Choice: ";
cin >> mainMenuChoice;

switch (mainMenuChoice) {
    case 1:
        break;
    case 2:
        inputFile.open("Bib.txt");
        inputFile >> easyBib;
        cout << easyBib << endl;
        break;
    case 3:

        break;
    /*case 4:
        break;*/
    case 4:
        cout << "Thank you for playing!" << endl;
        return(0);
    default:
        cout << "Sorry, Invalid Choice!\n";
        return(0);

}
return(0);
}

getQuestion.h:

代码语言:javascript
复制
#ifndef getQuestion
#define getQuestion

int getQuestion () {

ifstream Question;
ifstream Linker;                //Linker for 2 flies
ifstream Answer;
string A;
string L;               //Linker for 2 flies
string Q;
int line;


Question.open("Question.txt");
Question >> Q;
Answer.open("Answer.txt");
Answer >> A;
Linker.open("Linker.txt");
Linker >> L;


getline(Question,line);
number_of_lines++;
#endif

编译器错误:

代码语言:javascript
复制
Build Social Studies of project Social Studies with configuration Debug

CompileC "build/Social Studies.build/Debug/Social Studies.build/Objects-normal/x86/main.o" main.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
cd "/Users/student/Desktop/Social Studies"
setenv LANG en_US.US-ASCII
/Developer/usr/bin/gcc-4.2 -x c++ -arch x86_64 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wreturn-type -Wunused-variable -isysroot /Developer/SDKs/MacOSX10.6.sdk -mfix-and-continue -fvisibility-inlines-hidden -mmacosx-version-min=10.6 -gdwarf-2 -iquote "/Users/student/Desktop/Social Studies/build/Social Studies.build/Debug/Social Studies.build/Social Studies-generated-files.hmap" "-I/Users/student/Desktop/Social Studies/build/Social Studies.build/Debug/Social Studies.build/Social Studies-own-target-headers.hmap" "-I/Users/student/Desktop/Social Studies/build/Social Studies.build/Debug/Social Studies.build/Social Studies-all-target-headers.hmap" -iquote "/Users/student/Desktop/Social Studies/build/Social Studies.build/Debug/Social Studies.build/Social Studies-project-headers.hmap" "-F/Users/student/Desktop/Social Studies/build/Debug" "-I/Users/student/Desktop/Social Studies/build/Debug/include" "-I/Users/student/Desktop/Social Studies/build/Social Studies.build/Debug/Social Studies.build/DerivedSources/x86_64" "-I/Users/student/Desktop/Social Studies/build/Social Studies.build/Debug/Social Studies.build/DerivedSources" -c "/Users/student/Desktop/Social Studies/main.cpp" -o "/Users/student/Desktop/Social Studies/build/Social Studies.build/Debug/Social Studies.build/Objects-normal/x86_64/main.o"

In file included from /Users/student/Desktop/Social Studies/main.cpp:8:
/Users/student/Desktop/Social Studies/getQuestion.h:4: error: expected unqualified-id before 'int'
/Users/student/Desktop/Social Studies/getQuestion.h:4: error: expected `)' before 'int'

谢谢。另外,请不要刻薄,我是编程新手!我使用的是Mac v10.6.8和XCode 3.2.6,在别人要求我升级之前,我不是管理员(这是一台学校的笔记本电脑)

编辑:感谢大家的帮助!代码中是否还有其他问题(与性能有关?)

EN

回答 2

Stack Overflow用户

发布于 2012-12-16 09:29:37

代码语言:javascript
复制
#define getQuestion

int getQuestion () {

这里发生的事情是您将字符串"getQuestion“#define为空,然后使用int getQuestion(),它被转换为int (),这现在没有意义。@chris接得好。这就是你得到的错误的原因,一旦你解决了这个问题,我希望指出的其他问题会出现。

在制作宏时,一个好的经验法则是使它很少或根本没有机会与另一个名称匹配,在本例中是函数。它们通常都是大写的,既是为了帮助实现这一点,也是为了让你看起来很明显你正在处理一个宏。因此,在这种情况下,可以将包含保护命名为GETQUESTION_H

票数 2
EN

Stack Overflow用户

发布于 2012-12-16 09:31:22

编译器错误的问题是#define与函数具有相同的名称。如果将预处理器语句更改为

代码语言:javascript
复制
#ifndef getQuestion_h
#define getQuestion_h

您的编译器错误将得到解决。

还有许多其他错误会导致其他编译器错误,但因为这是家庭作业,所以您应该首先尝试解决这些错误。

作为一个风格问题,在.h文件中应该只有函数声明。您应该在另一个文件(如getQuestion.cpp )中定义getQuestion函数体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13897760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档