求助
c++吧
全部回复
仅看楼主
level 1
程序中cout语句为何不执行?求助。
#include<iostream>
#include "SDL/SDL.h"
#include <conio.h>
#include <stdio.h>
using namespace std;
int main(int argc, char *argv[]) {
freopen( "CON", "w", stdout );
freopen( "CON", "w", stderr );
std::cout<<"let's begin"<<std::endl;
system("pause");
try {
if (SDL_Init(SDL_INIT_EVERYTHING) == -1)
throw "Could not initialize SDL!";
}
catch(const char *s) {//catch函数定义?函数定义不是规定不能放在主函数中吗?
std::cerr << s << std::endl;
return -1;
}
int a=5;
cout << "a="<<a<<"<>"<< endl;
sleep(5);
//clrscr();
std::cout << "SDL initialized.\n";
SDL_Quit();
return 0;
}
2015年06月02日 09点06分 1
level 11
catch接着不是函数而是语句块....
2015年06月02日 11点06分 2
level 1
谢谢偶爱兰博基尼|!catch后面的语句不能执行吗?那catch后面不能再写代码了?
2015年06月02日 13点06分 3
try和catch是异常处理里的。   --心中惟有一抹白,Hala~Madrid!
2015年06月03日 16点06分
catch后面是可以接着写代码的。   --心中惟有一抹白,Hala~Madrid!
2015年06月03日 16点06分
谢谢cytdmm! catch后面的语句不能执行吗?
2015年06月05日 13点06分
level 1
求助。
2015年06月03日 03点06分 4
level 7
新手帮顶
2015年06月03日 03点06分 5
谢谢!
2015年06月03日 13点06分
level 7
为什么排版这么难看[呵呵][呵呵]
2015年06月03日 03点06分 6
level 10
是不是system pause 后程序已经暂停了,就不会执行之后的语句了吧
2015年06月03日 16点06分 7
把这一句注释掉仍然不执行。
2015年06月05日 13点06分
level 8
cout 写到 stdout 里,用 freopen 重定向之后就不会显示在屏幕上了
2015年06月03日 16点06分 8
谢谢zenghao1996!不过还没懂:"cout 写到 stdout 里"是什么意思?程序中"cout << "a="<<a<<"<>"<< endl;"语句前没有"std::",叫不叫"写到 stdout 里"?代码怎么改才能让a显示在屏幕上?
2015年06月05日 13点06分
level 13
如果只是catch后的语句不执行的话,那就是你的函数SDL_Init函数返回值为-1抛出,执行了catch语句,在catch里有一个return -1执行完后main函数就结束了,所以后面没了输出
2015年06月05日 16点06分 10
谢谢,谢谢!试验结果不关SDL。注释掉全部SDL语句结果一样。确实是freopen起得作用。
2015年06月05日 22点06分
level 1
2015年06月06日 07点06分 11
@zenghao1996:烦你试试能否退出重新定向回归控制台?c4roid中,只要有SDL的语句,哪怕注释掉,count就不会显示于屏幕。
2015年06月06日 08点06分
另外,我也想在电脑上试,但电脑上显示找不到头文件。我用DevC++.百度不到DevC++添加头文件的方法。请指教一下。
2015年06月06日 08点06分
Ubuntu 上可以用 sudo apt-get install libsdl1.2-dev 安装,然后用 g++ source.cpp `sdl-config --cflags --libs` 编译。
2015年06月07日 14点06分
Ubuntu 上不论加不加 sdl 相关的语句,结果都一样,freopen 之前的打印到屏幕上,之后的输出到文件 CON 里。Android 也是基于 Linux 的,CON 是合法的文件名,freopen 之后输出到文件 CON 里是正常的。
2015年06月07日 14点06分
1