将用户输入到字符串并将其写入文本文件 - 不工作

时间:2014-05-19 21:53:59

标签: c++ fork

我的程序向用户显示一条消息,提供输入,可以是没有长度限制的任何内容。

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.
}

此输入将保存在一个字符串中,该字符串将保存在文本文件中。我无法弄清楚我的代码有什么问题,因为它只需要第一个字母并将其保存在文本文件中。

请记住,这是在儿童流程中应用的!

编辑: 你可以看到我正在分配一个新工作来完成这项工作

1 个答案:

答案 0 :(得分:0)

cin >> i;更改为getline(cin, i);cin一旦找到空白区域,它就会停止阅读。