学号存储在int型变量中,strStudentNo是cstring类型变量
时间: 2024-02-21 18:59:17 浏览: 21
那么您的问题是如何将int型变量转换为cstring类型变量吗?可以使用以下方法将int型变量存储的数字转换为字符串类型:
``` c++
int num = 123456;
char strNum[20];
sprintf(strNum, "%d", num);
```
这样就可以将num的值转换为字符串类型存储在strNum中了。如果您想将cstring类型变量中存储的字符串转换为int型变量,可以使用以下方法:
``` c++
char strStudentNo[] = "20219999";
int num = atoi(strStudentNo);
```
这样就可以将strStudentNo中存储的字符串转换为int型变量存储在num中了。
相关问题
mfc从下拉组合框中获取学号信息,点击查询按钮在文件中找到相应学生信息并输出到列表框中
好的,我来给你讲一下大致思路:
1. 在 MFC 界面上添加一个下拉组合框,用于选择学号。
2. 添加一个查询按钮,点击后触发查询操作。
3. 在点击查询按钮时,获取下拉组合框中选中的学号。
4. 打开文件,逐行读取学生信息,查找与选中学号相符的学生信息。
5. 将找到的学生信息输出到列表框中。
下面是具体的代码实现:
1. 在 MFC 界面上添加一个下拉组合框和列表框
在对话框资源中添加一个下拉组合框和一个列表框,分别命名为 IDC_COMBO 和 IDC_LIST。
2. 添加一个查询按钮,点击后触发查询操作
在对话框资源中添加一个按钮,命名为 IDC_BUTTON_SEARCH。在类向导中添加一个响应函数 OnBnClickedButtonSearch(),并在该函数中添加查询操作的代码。
3. 在点击查询按钮时,获取下拉组合框中选中的学号
在 OnBnClickedButtonSearch() 函数中,首先获取下拉组合框中选中的学号。代码如下:
```
CString strStudentNo;
int nIndex = m_combo.GetCurSel(); // 获取选中项的索引
if (nIndex != CB_ERR) { // 如果选中项存在
m_combo.GetLBText(nIndex, strStudentNo); // 获取选中项的文本
}
```
这里的 m_combo 是下拉组合框的成员变量,通过类向导添加。strStudentNo 是一个字符串变量,用于保存选中的学号。
4. 打开文件,逐行读取学生信息,查找与选中学号相符的学生信息
接下来,打开文件,逐行读取学生信息,查找与选中学号相符的学生信息。代码如下:
```
CStdioFile file;
if (file.Open(_T("student.txt"), CFile::modeRead)) { // 打开文件
CString strLine;
while (file.ReadString(strLine)) { // 逐行读取文件
// 解析学生信息,获取学号和其他信息
CString strStudentNoFromFile = strLine.SpanExcluding(_T(" "));
CString strStudentInfo = strLine.Mid(strStudentNoFromFile.GetLength() + 1);
if (strStudentNo == strStudentNoFromFile) { // 如果学号匹配
// 将学生信息输出到列表框中
m_list.AddString(strStudentInfo);
}
}
file.Close(); // 关闭文件
}
```
这里的 student.txt 是存储所有学生信息的文件,每行格式为:学号 姓名 年龄 性别。strLine 是一个字符串变量,用于保存读取到的每一行信息。strStudentNoFromFile 和 strStudentInfo 分别是解析出来的学号和其他信息。
5. 将找到的学生信息输出到列表框中
最后一步,将找到的学生信息输出到列表框中。这里的 m_list 是列表框的成员变量,通过类向导添加。代码如下:
```
m_list.ResetContent(); // 先清空列表框
// 在查询操作中已经将找到的学生信息添加到列表框中了
// 这里不需要再做额外的操作
```
好了,以上就是从下拉组合框中获取学号信息,点击查询按钮在文件中找到相应学生信息并输出到列表框中的大致思路和代码实现。希望能对你有所帮助!
在Begin-End之间补充代码,声明并定义一个学生信息类 StInfo,该类有五个成员变量和两个函数,其访问性都为公有,具体要求如下: 学号:int SID 姓名:char *Name 班级:char *Class 手机号:char *Phone 寝室号:int num 给成员变量赋值的函数: void SetInfo(int sid,char *name,char* cla,char* phone) 打印学生信息的函数:void PrintInfo(),格式请参考测试说明。
好的,这是您的第一个问题。以下是您要求的代码:
```
// Begin
#include <iostream>
#include <cstring>
using namespace std;
class StInfo{
public:
int SID;
char *Name;
char *Class;
char *Phone;
int num;
void SetInfo(int sid, char *name, char* cla, char* phone) {
SID = sid;
Name = new char[strlen(name) + 1];
strcpy(Name, name);
Class = new char[strlen(cla) + 1];
strcpy(Class, cla);
Phone = new char[strlen(phone) + 1];
strcpy(Phone, phone);
}
void PrintInfo() {
cout<<"学号:"<<SID<<endl;
cout<<"姓名:"<<Name<<endl;
cout<<"班级:"<<Class<<endl;
cout<<"手机:"<<Phone<<endl;
cout<<"寝室号:"<<num<<endl;
}
};
// End
```
说明:
- 在类定义中,我声明了一个名为"StInfo" 的类,并将所有成员变量的访问级别设置为公有。
- 在 SetInfo 函数中,我定义了传递给函数的参数并将其存储在成员变量中。请注意,Name、Class和Phone成员变量是字符指针类型,它们需要用 new 进行动态分配内存,以便存储传递给函数的参数。
- 在 PrintInfo 函数中,我按照要求打印出学生信息。
您可以将这段代码复制并粘贴到您的项目中进行测试。如果有任何问题,请随时询问。