1
lisonfan OP 请输入第一个数:1
请输入第二个数:2 请输入一个运算符无法识别您输入的运算符!Program ended with exit code: 0 |
2
jox 2014-10-14 17:39:01 +08:00 1
ಠ_ಠ
首先,getchar是C标准库里的一个函数,跟xcode和command line tool没关系。 然后,scanf这个函数,不会读换行符,实际上你输入的字符序列是: 1\n2\n 第一个scanf读取1,第二个scanf跳过第二个\n之后读取2,现在stdin里的字符序列还剩下:\n,最后一个函数getchar读取最后那个\n字符之后,程序结束。 想要读入运算符的话,可以实现你需要的功能的修正是:在ysf=getchar();之前再加一句getchar();把那个\n消耗掉,最后的getchar没有字符可读,只好等待新的输入了。 这是修正之后的执行结果: 请输入第一个数:1 请输入第二个数:2 请输入一个运算符* 1*2=2 |
4
lisonfan OP @jox 我在Windows平台上用Dev C++开发不会出现这个问题,所以我就直接将Dev C++上写的直接copy在Xcode上了
|
5
jox 2014-10-14 18:38:51 +08:00
C++我不懂啊,标准C的scanf函数的行为就是这样的,不同平台可能行为会不一样吧,一般写C程序不在xcode里写啊,既然都有xcode了,就是用苹果电脑了,用编辑器编辑C源程序,然后用make编译就行,我觉得那样更方便。
比如我用emacs(编辑器软件)写好一个C的源代码文件,v.c,然后在v.c所在的路径下输入make v,这样就编译完成了,生成的可执行文件默认的文件名是v,直接执行v就可以观察程序的运行结果了。xcode用来写Objective-C挺方便的,写C我感觉不太好用。 |