我想从6个用户请求用户名和密码,
然后将此用户名和密码保存到桌面上的文本文件中。
我构建了一个结构,其中包含一个用于存储密码的变量和一个长度为25的char
数组。
struct users {
int password;
char username[25];
}
当我想在main()
函数中请求用户名时,我使用cin.get()
函数。
cin.get(username,25);
程序在存储密码时在第二个cin
功能之后停止。那是为什么?
#include <iostream>
#include <fstream>
struct users {
char username[25];
int password;
} user[6];
using namespace std;
int main() {
cout << "Sign up x6" << endl;
for(int i=0;i<6;i++){
cout << "Username:";
cin.get(user[i].username,20);
cout << "Password:";
cin >> user[i].password;
}
std::ofstream file;
file.open("C:/Users/Programmer/Desktop/sa.txt",ios::app);
for(int i=0;i<6;i++){
file << "first user\n" << user[i].username << endl << user[i].password << endl;
cout << "\n \n \n";
}
}
答案 0 :(得分:-1)
我找到了使用&#34;获取&#34; 功能的解决方案..在 stdio.h 库内部:
函数&#34;获取&#34; 将请求值的用户然后存储变量的值。 (用户名)
char username [25];
得到(用户名[25]);
但是此功能&#34;得到&#34; 只获得&#34; char&#34; 类型变量的值我将&#34;密码&#34; 变量类型更改为 char
char密码[25];
得到(密码[25]);
#include<iostream>
#include <fstream>
#include<stdio.h>
struct users
{
char username[25];
char password[25];
} user[6];
using namespace std;
int main()
{
cout << "Sign up x6" << endl;
for (int i = 0; i < 6; i++)
{
cout << "username:";
gets(user[i].username);
cout << "Password:";
gets(user[i].password);
}
std::ofstream file;
file.open("C:/Users/Programmer/Desktop/sa.txt", ios::app);
for (int i = 0; i < 6; i++)
{
file <<"("<<i<<") user\n" << user[i].username << endl << user[i].password<< endl;
cout << "\n \n \n";
}
}
答案 1 :(得分:-2)
使用std :: cin.getline(user [i] .username,20)代替。