我用了一个文件读写操作,就是只写不读,然后文件读写操作完了之后,我重定向到了控制台输入,然后用了system("cls"),但是却显示一堆方框,如下图
请问有什么好的解决方法吗?
完整代码
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
std::string userinput[3005];
int main(){
for(int i=1;i<=25;i++)std::cout<<'\n';
for(int i=1;i<=75;i++)std::cout<<' ';
std::cout<<"write your code!";
//_sleep(5000);
system("cls");
for(int i=1;i<=15;i++)std::cout<<'\n';
for(int i=1;i<=70;i++)std::cout<<" ";
std::cout<<"stop = Close the program."<<'\n';
for(int i=1;i<=70;i++)std::cout<<" ";
std::cout<<"save = Save the code."<<'\n';
for(int i=1;i<=70;i++)std::cout<<" ";
std::cout<<"run = runing."<<'\n';
for(int i=1;i<=70;i++)std::cout<<" ";
std::cout<<"test = Test that the code is saved in its entirety."<<'\n';
std::cout<<'\n'<<'\n'<<'\n'<<'\n'<<'\n'<<'\n'<<'\n'<<"Your Code:"<<'\n';
string str;
int idx=0;
while(1){
//system("cls");
idx++;
getline(std::cin,str);
userinput[idx]=str;
if(str=="stop"){
std::cout<<"IDE is closed."<<'\n';
return 0;
}
if(str=="save"){
freopen("test2.cpp","w",stdout);
for(int i=1;i<=idx-1;i++){
std::cout<<userinput[i]<<'\n';
}
fclose(stdout);
freopen("CON","r",stdout);
freopen("CON","w",stdout);
std::cout<<"The save was successful.";;
_sleep(5000);
//std::cout<<"\033[2J";
system("cls");
for(int i=1;i<=15;i++)std::cout<<'\n';
for(int i=1;i<=70;i++)std::cout<<" ";
std::cout<<"stop = Close the program."<<'\n';
for(int i=1;i<=70;i++)std::cout<<" ";
std::cout<<"save = Save the code."<<'\n';
for(int i=1;i<=70;i++)std::cout<<" ";
std::cout<<"run = runing."<<'\n';
for(int i=1;i<=70;i++)std::cout<<" ";
std::cout<<"test = Test that the code is saved in its entirety."<<'\n';
std::cout<<'\n'<<'\n'<<'\n'<<'\n'<<'\n'<<'\n'<<'\n'<<"Your Code:"<<'\n';
}
}
}