只是初学者学习基本的C ++。我试图找出最好的方法:
将char数组名称20转换为可打印的字符串。 我发现在其他Stack Overflow主题中使用" str()"例如" str(Name)",但总是出现'标识符未找到'。
cout << "Name:" << str(Name) << endl;
设置一个20个字符的char数组。出于某种原因,以下内容在声明时给出了错误。我已多次调整它,但我无法理解为什么它不会给予。
TESCStudent.Name[20] = {'S','u','p','e','r','P','r','o','g','r','a','m','m','e','r','\0'};
我到目前为止的完整代码:
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
//Step 1
struct StudentRecord
{
char Name[20];
//Accessor
void printInfo() const;
};
void StudentRecord::printInfo() const
{
cout << "Name:" << str(Name) << endl;
}
int main()
{
//Step 2
StudentRecord TESCStudent;
TESCStudent.Name[20] = {'S','u','p','e','r','P','r','o','g','r','a','m','m','e','r','\0'};
//Step 3
TESCStudent.printInfo();
_getch();
return 0;
}
答案 0 :(得分:1)
鉴于您处于初级水平,只需使用std::string
:
#include <iostream>
#include <conio.h>
#include <string>
struct StudentRecord {
std::string Name;
void printInfo() const {
std::cout << "Name:" << Name << '\n';
}
};
int main() {
StudentRecord TESCStudent;
TESCStudent.Name = "SuperProgrammer";
TESCStudent.printInfo();
_getch();
}
答案 1 :(得分:0)
语法如下:
char Name[20] = {'S','u','p','e','r','\0'};
用于在定义变量时初始化变量。但是,在您的情况下,
StudentRecord TESCStudent;
TESCStudent.Name[20] = ...;
您之前已经在线上定义了它,因此您无法初始化&#34;,您必须&#34;分配&#34;它
这就是您使用std:string
代替char[]
的原因。