C++程序有语法错误,第一次使用模块
C++ program has syntax errors, using modules for first time
// Function displays course information
// instructor defaults to Staff
// enrollment defualts to 30
// main() demonstrates function can be called three ways
#include<iostream>
using namespace std;
int main()
{
void displayCourseInfo(char, char* = "Staff", int = 30);
displayCourseInfo("ENG101");
displayCourseInfo("PSY151", "Bossert");
displayCourseInfo("CIS200", "Edwards", 24);
return 0;
}
void displayCourseInfo(char course, char* instructor, int enrollment)
{ cout << course << " taught by " << instructor <<
" enrollment " << enrollment << endl;
}
当我尝试运行此代码时,我得到 此错误消息。它说我无法将 *const 字符转换为字符。 感谢您的时间和帮助。
C++中的字符串文字(与 C 相反)具有常量字符数组的类型。例如,字符串文本"Staff"
的类型为const char [6]
。
在表达式中使用 数组指示符(极少数例外)将转换为指向其第一个元素的指针。因此,用作参数的字符串文字"Staff"
将转换为类型为const char *
的指针。
函数displayCourseInfo
的第一个参数在尝试将字符串文本作为参数传递时声明为具有char
类型。
有效的程序可以如下所示
// Function displays course information
// instructor defaults to Staff
// enrollment defualts to 30
// main() demonstrates function can be called three ways
#include<iostream>
using namespace std;
int main()
{
void displayCourseInfo( const char *, const char * = "Staff", int = 30 );
displayCourseInfo("ENG101");
displayCourseInfo("PSY151", "Bossert");
displayCourseInfo("CIS200", "Edwards", 24);
return 0;
}
void displayCourseInfo( const char *course, const char *instructor, int enrollment)
{
cout << course << " taught by " << instructor
<< " enrollment " << enrollment << endl;
}
它的输出是
ENG101 taught by Staff enrollment 30
PSY151 taught by Bossert enrollment 30
CIS200 taught by Edwards enrollment 24
发生这种情况是因为"在引号中测试"默认const char*
。
声明中带有const
的值无法更改。
不能const
变量传递给采用非常量参数的函数。
你可以把函数的参数const
:
#include<iostream>
using namespace std;
void displayCourseInfo(const char *);
void displayCourseInfo(const char *, const char *);
void displayCourseInfo(const char *, const char *, const int);
int main() {
displayCourseInfo("ENG101");
displayCourseInfo("PSY151", "Bossert");
displayCourseInfo("CIS200", "Edwards", 24);
return 0;
}
void displayCourseInfo(const char *course, const char *instructor) {
cout << course << " taught by " << instructor <<
" enrollment " << 30 << endl;
}
void displayCourseInfo(const char *course) {
cout << course << " taught by " << "Staff" <<
" enrollment " << 30 << endl;
}
void displayCourseInfo(const char *course, const char *instructor, const int enrollment) {
cout << course << " taught by " << instructor <<
" enrollment " << enrollment << endl;
}
相关文章:
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 我必须构建我的项目 2 次,第一次失败,因为它无法打开库
- 是什么导致我的循环在第一次迭代中运行得更慢
- QLibrary 函数在第一次调用时工作缓慢
- 第一次尝试使用new动态创建结构数组,程序挂起没有错误
- 为什么第一次迭代后的指针指向随机值?
- 如何防止GUI挂起,同时允许第二次操作与Qt中的第一次操作一起执行
- LAPACK函数在第一次迭代后变慢
- 为什么 Boost unordered_map 在第一次插入时需要太多时间?
- EGL 在第一次 opengl 函数调用时崩溃
- 提升 Asio SSL 无法第二次接收数据(第一次确定)
- 数组仅在第一次返回错误值
- C++程序在第一次尝试时会给出垃圾,但如果它捕获异常并重试,则会给出适当的值
- 为什么字符串的长度在第一次读取文件时相差 1?
- 为什么 new 第一次分配 1040 个额外的字节?
- 插入多音符:在该值的第一次发生之前,而不是在上次发生之后
- 第一次尝试在线编程给出错误的答案
- C++程序有语法错误,第一次使用模块
- 为什么第一次工作后对 LoadLibrary 的调用会失败并显示"找不到指定的模块"
- 第一次尝试适当的模块化编程的问题