int main(int argc, char *argV[]){
istream *br;
ifstream inFile;
if(argc == 2){
inFile.open(argV[1]);
if(inFile.is_open()){
cout << "file opened."; //if only "file opened" has an "\n then only it will print
br = &inFile; //and the program will freeze right after printing it
}
}
else if(argc <= 1){
br = &cin;
}
else{
cout << "Unrecognized commands";
}
cout << "test"; //having \n here allows the program to reach this line of code and
cout << "test2\n"; //everything before it
Происходит нечто странное. Если «\ n» не включено в строку, ничего не будет печататься до стандартного. Например. соиЬ < < «тест» & «test2 \ п» на дно позволяет программе достичь этих строк кода и COUT все, вплоть до этого момента, например, строка «файл открыта», потому что test2 имеет \ n, а файл открывается перед ним. Если они меняются только на cout test1 test2, программа ничего не выводит, в том числе «файл открыт». Кроме того, если я изменил «файл открыт» на «файл открыт \ n», это будет напечатано, но если test1 и test2 не имеют \ n, они не будут печататься, так как они находятся после \ n в «открывшемся файле».Почему моя программа останавливается, если включен « n»
пытались ли вы промывкой потока? – Default
Что такое 'istream * br;' for? 1. Вам не нужен указатель для этого, и 2. вы оставите его неинициализированным! – crashmstr
Вы используете систему unixish? Если да, то './yourprogram; эхо' какая разница? Включает ли приглашение вашей оболочки возврат каретки и перезаписывает ваш вывод? – melpomene