输入这里似乎有一些错误,我需要的输入是1201 zhangsan 13,这种,似乎无法正确读入
时间: 2024-04-10 19:33:26 浏览: 44
对不起,我之前的代码确实存在问题。cin.get() 函数在读取字符串后会将换行符留在输入缓冲区中,而在读取 age 变量时会读取到换行符,导致输入错误。为了解决这个问题,我将修改代码如下:
```cpp
List InitList(List &head, int length)
{
head = new node;
head->next = NULL;
struct node *p;
int t;
cout << "进入init" << endl;
while(length)
{
p = new node;
cin >> p->id;
cin >> p->name;
cin >> p->age;
cin.ignore(); // 忽略换行符
p->next = head->next;
head->next = p;
length--;
cout << p->id << " " << p->name << " " << p->age << " " << endl;;
}
return head;
}
```
修改后的代码中,使用了 `cin.ignore()` 函数来忽略输入缓冲区中的换行符,确保下一次读取数据能够正常进行。现在,你可以尝试使用 "1201 zhangsan 13" 这样的输入来测试代码了。
相关问题
E8 1设计简易系统登录程序,如果用户输入的账号是 2已注册的账号,要求输入密码,若密码输入正确 3给出“登录成功!”的信息,若密码输入错误, 4给出“密码不正确!请重新输入密码!”的信息, 5若输入的账号不是已注册的账号, 6给出“您不是注册用户!请注册!”的信息。 7注册用户有:zhangsan,lisi,wangwu, 8对应的密码是:110,120,119。(账号和密码用字典来创建) Ig结果如下: r 10 a 11欢迎登陆***系统! 12请输入账号:lisi W 13请输入密码:120 14登录成功!
以下是简易系统登录程序的 Python 代码实现:
```python
# 创建账号和密码的字典
accounts = {'zhangsan': '110', 'lisi': '120', 'wangwu': '119'}
# 欢迎信息
print("欢迎登陆***系统!")
# 输入账号
account = input("请输入账号:")
# 判断账号是否已注册
if account in accounts:
# 输入密码
password = input("请输入密码:")
# 判断密码是否正确
if password == accounts[account]:
print("登录成功!")
else:
print("密码不正确!请重新输入密码!")
else:
print("您不是注册用户!请注册!")
```
根据题目提供的样例,程序输出结果如下:
```
欢迎登陆***系统!
请输入账号:lisi
请输入密码:120
登录成功!
```
输入ZhangSan 得出hello , ZhangSan!
看起来你想要的是创建一个简单的程序,当给定名字"ZhangSan"时,返回问候语"Hello, ZhangSan!"。这通常在命令行交互或者控制台应用中通过条件判断或者映射表来实现。以下是一个使用基础if-else结构的简单示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char name[] = "ZhangSan"; // 定义固定的名字
char input[50];
printf("请输入名字: ");
scanf("%s", input); // 获取用户的输入
if (strcmp(name, input) == 0) { // 比较两个字符串是否相等
printf("Hello, %s!\n", input);
} else {
printf("欢迎你, %s.\n", input);
}
return 0;
}
```
在这个例子中,如果输入的名字等于"ZhangSan",则输出特定的问候,否则输出一般性的欢迎。
阅读全文