我的程序向用户显示一条消息,提供输入,可以是没有长度限制的任何内容。
using namespace std;
void child() {
string i;
cout<<endl;
cout<<"Enter your text:"<<endl;
getline(cin, i);
cout<<endl;
ofstream out;
out.open("pro1.txt");
out<<i;
sleep(2);
out.close();
}
main()
{
int r = fork();
if (r == 0) // child
{
child();
exit(0);
} else if (r < 0) // failed to fork
{
cout << "Failed to fork" << endl;
// Throw exception
} else // parent
{
// Code only executed by parent process
cout<<"im in parent";
}
// Code executed by both parent and child.
}
此输入将保存在一个字符串中,该字符串将保存在文本文件中。我无法弄清楚我的代码有什么问题,因为它只需要第一个字母并将其保存在文本文件中。
请记住,这是在儿童流程中应用的!
编辑: 你可以看到我正在分配一个新工作来完成这项工作
答案 0 :(得分:0)
将cin >> i;
更改为getline(cin, i);
。 cin
一旦找到空白区域,它就会停止阅读。