我的程序应该添加100个用户和密码。但是我也有困难(我也会发布输出和输入文件)。应该发生的是从文件中获取用户名并且密码也是如此(它们的ID号来自)。格式类似于用户:jacob密码:se-123456。但是,似乎用户不存在。这是我的计划:
#include <iostream>
#include <cstdlib>
#include <string>
#include <sstream>
using namespace std;
int main()
{
cout << "Hello world." << endl;
//system("mkdir user1");
string anyCommand="", name, userpassword;
ifstream myfile ("userNames1000.txt");
if (myfile.is_open())
//code to open a file
{
while ( getline (myfile,anyCommand) )
{
for(int i = 0; i <= 100; i++)
{
stringstream temp;
temp << i;
name = "user";
name += temp.str();
//useradd vs. userdel
anyCommand = "useradd " + name;
cout << anyCommand << endl;
//system(anyCommand.c_str());
anyCommand = "";
userpassword = "se- " ;
//set the command, e.g., system("echo john:se-2014 |chpasswd");
anyCommand = "echo " + name + ":" + userpassword + " |chpasswd";
cout << anyCommand << endl;
system(anyCommand.c_str());
}
myfile.close();
}
}
else cout << "Unable to open file";
return 0;
}
这是我运行程序时发生的事情:
Hello World
useradd user0
echo user0:se- | chpasswd
chpasswd: line 1: user 'user0' does not exist
chpasswd: error detected, changes ignored
useradd user1
echo user1:se- | chpasswd
chpasswd: line 1: user 'user1' does not exist
chpasswd: error detected, changes ignored
useradd user2
echo user2:se- | chpasswd
chpasswd: line 1: user 'user2' does not exist
chpasswd: error detected, changes ignored
然后它继续直到达到100;同样的错误继续下去。我有一种感觉,我正朝着正确的方向前进,我只需要一些帮助来解决我需要解决的问题。
以下是输入文件中的内容示例。
Mary:20153
Lindsey:19396
Ashley:17151
Jason:16861
答案 0 :(得分:0)
您注释了一条重要的路线(如A.Flaischer的评论所述):
anyCommand = "useradd " + name;
cout << anyCommand << endl;
//system(anyCommand.c_str());
另一方面,你的程序似乎没有按照你的想法去做。它适用于user0到user99,但是你提到了示例输入文件。此输入文件将不会被正确处理。
由于C ++可能是您最喜欢的语言,因此shell脚本将是完成任务的最简单方法。