我是C ++语言的新手。 所以我被分配将现有文件拆分为三个源代码:swap.h,swap.cpp和source3.cpp
现有档案:
#include <iostream>
void get_numbers (int&, int&);
void swap_values (int&, int&);
void show_results (int, int);
int main () {
int first_num, second_num;
get_numbers (first_num, second_num);
swap_values (first_num, second_num);
show_results (first_num, second_num);
return 0;
}
void get_numbers (int& input1, int& input2) {
using namespace std;
cout << "Enter two integers: ";
cin >> input1 >> input2;
}
void swap_values (int& variable1, int& variable2) {
int temp;
temp = variable1;
variable1 = variable2;
variable2 = temp;
}
void show_results (int output1, int output2) {
using namespace std;
cout << "In reverse order the numbers are: "
<< output1 << " " << output2 << endl;
}
swap.h包含函数原型
swap.cpp包含函数实现
source3.cpp包含主要功能
:
#pragma once
#ifndef swap_h
#define swap_h
void get_numbers(int&, int&);
void swap_values(int&, int&);
void show_results(int, int);
#endif
for swap.cpp
#include <iostream>
void get_numbers(int& input1, int& input2) {
using namespace std;
cout << "Enter two integers: ";
cin >> input1 >> input2;
}
void swap_values(int& variable1, int& variable2) {
int temp;
temp = variable1;
variable1 = variable2;
variable2 = temp;
}
void show_results(int output1, int output2) {
using namespace std;
cout << "In reverse order the numbers are: "
<< output1 << " " << output2 << endl;
}
for source3.cpp:
#include "stdafx.h"
#include "swap.h"
int main()
{
int first_num, second_num;
get_numbers(first_num, second_num);
swap_values(first_num, second_num);
show_results(first_num, second_num);
return 0;
}
当我调试程序时,它说:“无法启动程序'C:\ User ......' 该系统找不到指定的文件。我做错了什么?
答案 0 :(得分:1)
由于您的代码编译成功但无法启动,因此您可能遇到与调试环境相关的问题。
此外,一旦有#ifdef
,您就不需要#define
,#endif
和#pragma once
。
答案 1 :(得分:0)
如果您提供的是整个代码,则swap.h
中未包含swap.cpp
。因此,您有函数的定义,但没有声明。虽然我会想到另一个错误或至少是一个警告。试着解决这个问题。
如果不起作用,请尝试构建发行版。它编译?它开始了吗?当它开始时,它会做什么吗?如果我之前提到的是问题,我希望程序能够直接运行到最后,而不做任何事情。
如果问题出在主文件中swap.h
,请确保它位于同一位置,或者包含路径指向包含它的目录。 stdafx.h
此外,您不需要#pragma once
和#ifndef
#define
以及#endif
。除去其中任何一个,我建议使用#ifndef
#define
和#endif
,因为#pragma once
不支持任何地方。但对你而言,这无关紧要。