如何在终端中killstop一个正在运行的进程而不丢失其输出?

问题描述 投票:0回答:2

我试图在终端中运行一个简单的c++代码,并尝试将其输出存储在output.txt中。

CODE-

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(1)
    {
        cin>>n;
        cout<<n;
    }
    return 0;
}

使用终端命令。

g++ code.cpp
./a.out > output.txt

和输入。

1 
2
3
4
5

但当我用Ctrl+C终止程序时,output.txt是空的.先谢谢你的帮助。

c++ bash terminal output
2个回答
1
投票

对我来说,即使是这样,它也能按照你的期望工作,我想也许你的任务没有关闭!所以尝试两件事:1-尝试在crtl+C后关闭终端。我想可能是你的任务没有关闭!所以尝试两件事:1-尝试在crtl+c后关闭终端。之后再次检查输出文件的内容2-请给出一个好的名字,而不是a.out(testfile.out),在crtl+c后在shell中尝试下面的命令。

sudo ps -aux | grep testfile

看看你的进程是否被杀死了。


-1
投票

我刚刚检查了一下,我用Ctrl+C终止了程序,输出完美的存储到output.txt文件中。

但如果你还是不确定问题所在,可以用下面的方法。

#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    while(n!=-1){
        cin>>n;
        if(n!=-1)
            cout<<n<<endl;
    }
    return 0;
}

输入 -1 终止程序:)

© www.soinside.com 2019 - 2024. All rights reserved.